~ruther/guix-local

bc7d089a9cb5ce843730f863cc03195168a956b9 — Ludovic Courtès 11 years ago 310709a
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.
1 files changed, 3 insertions(+), 4 deletions(-)

M guix/serialization.scm
M guix/serialization.scm => guix/serialization.scm +3 -4
@@ 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)