diff options
-rw-r--r-- | guix/status.scm | 5 | ||||
-rw-r--r-- | tests/status.scm | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/guix/status.scm b/guix/status.scm index 8e05d4eb76..ffa9d9e93c 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -588,8 +588,9 @@ The second return value is a thunk to retrieve the current state." ;; The build port actually receives Unicode strings. (set-port-encoding! port "UTF-8") - (setvbuf port (cond-expand (guile-2.2 'line) (else _IOLBF))) - + (cond-expand + ((and guile-2 (not guile-2.2)) #t) + (else (setvbuf port 'line))) (values port (lambda () %state))) (define (call-with-status-report on-event thunk) diff --git a/tests/status.scm b/tests/status.scm index 3b74946673..99abb41c8b 100644 --- a/tests/status.scm +++ b/tests/status.scm @@ -125,7 +125,10 @@ (test-equal "current-build-output-port, UTF-8 + garbage" ;; What about a mixture of UTF-8 + garbage? - '((build-log #f "garbage: �lambda: λ\n")) + (let ((replacement (cond-expand + ((and guile-2 (not guile-2.2)) "?") + (else "�")))) + `((build-log #f ,(string-append "garbage: " replacement "lambda: λ\n")))) (let-values (((port get-status) (build-event-output-port cons '()))) (display "garbage: " port) (put-bytevector port #vu8(128)) |