diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-05-01 13:10:18 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-01 13:10:18 +0200 |
commit | bc7d089a9cb5ce843730f863cc03195168a956b9 (patch) | |
tree | 764224d93613a2f63b13ebe82a2cc28c3e430f88 | |
parent | 310709ae58d945b05705f329bca747f07967cd73 (diff) | |
download | guix-bc7d089a9cb5ce843730f863cc03195168a956b9.tar.gz guix-bc7d089a9cb5ce843730f863cc03195168a956b9.zip |
serialization: Adjust the permissive UTF-8 decoder to Guile 2.0.12ish.
* guix/serialization.scm (read-maybe-utf8-string): Use
'set-port-encoding!' and 'set-port-conversion-strategy!' instead of
setting '%default-port-encoding' and
'%default-port-conversion-strategy'. This accounts for Guile commit
d574d96, which changes bytevector input ports to use ISO-8859-1.
-rw-r--r-- | guix/serialization.scm | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/guix/serialization.scm b/guix/serialization.scm index a99f53ee0b..51d7ef76c6 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -140,10 +140,9 @@ substitute invalid byte sequences with question marks. This is a ;; not very efficient. Eventually Guile may provide a lightweight ;; permissive UTF-8 decoder. (let* ((bv (read-byte-string p)) - (port (with-fluids ((%default-port-encoding "UTF-8") - (%default-port-conversion-strategy - 'substitute)) - (open-bytevector-input-port bv)))) + (port (open-bytevector-input-port bv))) + (set-port-encoding! port "UTF-8") + (set-port-conversion-strategy! port 'substitute) (get-string-all port))) (define (write-string-list l p) |