diff --git a/core/src/statusbar.sld b/core/src/statusbar.sld index e3fb628..7d42eb5 100644 --- a/core/src/statusbar.sld +++ b/core/src/statusbar.sld @@ -87,9 +87,9 @@ (define (draw-status-bar) (fprintf err-port "\r\x1B[2K") ; ] (if (<= (string-length status-bar) terminal-width) - (write-string status-bar err-port) + (fprintf err-port "~A" status-bar) (begin - (write-string status-bar err-port 0 (- terminal-width 3)) + (fprintf err-port "~A" (string-copy status-bar 0 (- terminal-width 3))) (write-string "..." err-port))) (flush-output-port err-port) (set! need-redraw #f)) @@ -202,7 +202,11 @@ ((and (eqv? event 'activity-start) (eq? (nix-activity-type data) 105)) (set! build-activity-mapping (mapping-set! build-activity-mapping (nix-activity-id data) - (string-drop (string-drop-while (vector-ref (nix-activity-fields data) 0) (lambda (f) (not (char=? f #\-)))) 1)))) + (string-drop (string-drop-while (vector-ref (nix-activity-fields data) 0) (lambda (f) (not (char=? f #\-)))) 1))) + (mutex-lock! out-mutex) + (set! statusbar-msg (string-append "building " (vector-ref (nix-activity-fields data) 0))) + (mutex-unlock! out-mutex) + (rerender-status-bar)) ((eqv? event 'activity-start) (when (> (string-length (nix-activity-string data)) 0) (set! statusbar-msg (nix-activity-string data)) (rerender-status-bar))) ((eqv? event 'activity-stop) (set! build-activity-mapping (mapping-delete! build-activity-mapping data)))