summaryrefslogtreecommitdiff
path: root/guix/serialization.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-05-01 13:10:18 +0200
committerLudovic Courtès <ludo@gnu.org>2015-05-01 13:10:18 +0200
commitbc7d089a9cb5ce843730f863cc03195168a956b9 (patch)
tree764224d93613a2f63b13ebe82a2cc28c3e430f88 /guix/serialization.scm
parent310709ae58d945b05705f329bca747f07967cd73 (diff)
downloadgnu-guix-bc7d089a9cb5ce843730f863cc03195168a956b9.tar
gnu-guix-bc7d089a9cb5ce843730f863cc03195168a956b9.tar.gz
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.
Diffstat (limited to 'guix/serialization.scm')
-rw-r--r--guix/serialization.scm7
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)