channels: Consider news files as UTF-8-encoded by default.

Partly fixes <https://issues.guix.gnu.org/57039>.
Reported by Pierre-Henry Fröhring <contact@phfrohring.com>.

Previously, news file would be read using the current locale encoding.
This could lead to a test failure in 'tests/channels.scm' (in a test
that expects some Unicode-capable encoding) in case tests were run in a
non-Unicode locale.

* guix/channels.scm (channel-news-for-commit): Make port for NEWS-FILE
UTF-8 by default.
This commit is contained in:
Ludovic Courtès 2022-08-09 15:59:09 +02:00
parent e1b8bace8c
commit 60e0aae89c
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 5 additions and 1 deletions

View File

@ -1153,7 +1153,11 @@ NEW. When OLD is omitted or is #f, return all the news entries of CHANNEL."
(if (and news-file (file-exists? news-file))
(with-repository checkout repository
(let* ((news (call-with-input-file news-file
read-channel-news))
(lambda (port)
(set-port-encoding! port
(or (file-encoding port)
"UTF-8"))
(read-channel-news port))))
(entries (map (lambda (entry)
(resolve-channel-news-entry-tag repository
entry))