--- Begin Message ---
Subject: |
call-with-input-file and call-with-output-file should use textual ports |
Date: |
Tue, 31 Jul 2018 09:14:12 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hello schemers,
the call-with-input-file and call-with-output-file procedures in (rnrs
io simple) should open textual ports. In Guile 2.2.4, they open binary
ports:
(define (call-with-input-file filename proc)
(call-with-port (open-file-input-port filename) proc))
(define (call-with-output-file filename proc)
(call-with-port (open-file-output-port filename) proc))
Changing the inner calls to open-input-file and open-output-file is
sufficient to fix this bug.
A consequence of using binary ports here is that the I/O is not
transcoded, so UTF-8 data is corrupted.
--
Göran Weinholt
Debian developer
73 de SA6CJK
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#32329: call-with-input-file and call-with-output-file should use textual ports |
Date: |
Thu, 02 Aug 2018 10:44:58 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hi Göran,
Göran Weinholt <address@hidden> writes:
> the call-with-input-file and call-with-output-file procedures in (rnrs
> io simple) should open textual ports. In Guile 2.2.4, they open binary
> ports:
>
> (define (call-with-input-file filename proc)
> (call-with-port (open-file-input-port filename) proc))
>
> (define (call-with-output-file filename proc)
> (call-with-port (open-file-output-port filename) proc))
>
> Changing the inner calls to open-input-file and open-output-file is
> sufficient to fix this bug.
>
> A consequence of using binary ports here is that the I/O is not
> transcoded, so UTF-8 data is corrupted.
Fixed in commit 4c91de3e45e7c98d5b7c484509fe5c59bd70f9fd on the
'stable-2.2' branch. Thanks!
Mark
--- End Message ---