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.
This commit is contained in:
parent
310709ae58
commit
bc7d089a9c
|
@ -140,10 +140,9 @@ substitute invalid byte sequences with question marks. This is a
|
||||||
;; not very efficient. Eventually Guile may provide a lightweight
|
;; not very efficient. Eventually Guile may provide a lightweight
|
||||||
;; permissive UTF-8 decoder.
|
;; permissive UTF-8 decoder.
|
||||||
(let* ((bv (read-byte-string p))
|
(let* ((bv (read-byte-string p))
|
||||||
(port (with-fluids ((%default-port-encoding "UTF-8")
|
(port (open-bytevector-input-port bv)))
|
||||||
(%default-port-conversion-strategy
|
(set-port-encoding! port "UTF-8")
|
||||||
'substitute))
|
(set-port-conversion-strategy! port 'substitute)
|
||||||
(open-bytevector-input-port bv))))
|
|
||||||
(get-string-all port)))
|
(get-string-all port)))
|
||||||
|
|
||||||
(define (write-string-list l p)
|
(define (write-string-list l p)
|
||||||
|
|
Loading…
Reference in New Issue