diff options
author | Eric Bavier <bavier@cray.com> | 2018-10-10 16:42:02 -0500 |
---|---|---|
committer | Eric Bavier <bavier@member.fsf.org> | 2018-10-16 17:12:09 -0500 |
commit | 278f86a43f1561b1c064ce88da012db414ec7efc (patch) | |
tree | 9fb4e195618afa1ca94075fe1ff988d7e1cf6893 | |
parent | 6f1ce09d79fa6148459c90120881e825551651b2 (diff) | |
download | guix-278f86a43f1561b1c064ce88da012db414ec7efc.tar guix-278f86a43f1561b1c064ce88da012db414ec7efc.tar.gz |
ui: Fix port-buffering with guile@2.0.
* guix/status.scm (build-event-output-port)[guile@2.0]: Do not call 'setvbuf'
on custom binary port.
* tests/status.scm (current-build-output-port, UTF-8 + garbage)[guile@2.0]:
Use "?" in place of REPLACEMENT CHARACTER.
-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)) |