Subject: Re: bug#49082: [PATCH] guix: gexp: Make UTF-8 a default port encoding in mixed-text-file
From: Ludovic Courtès <[email-masked]>
To: Andrew Tropin <[email-masked]>
Cc: [email-masked]
Date: Wed, 23 Jun 2021 23:39:25 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Andrew Tropin <[email-masked]> skribis:

> guix/gexp.scm (mixed-text-file): It's necessary because if some UTF-8 symbols
> appear in configuration, resulting file in the store will contain ? instead of
> it.

Good catch!  Applied as 1f3d7b45349d43e5cc02594083e0cd44ef730992.

Please look how I modified the commit log, in line with our conventions
and previous entries for this file.

>    (define build
>      (gexp (call-with-output-file (ungexp output "out")
>              (lambda (port)
> +              (set-port-encoding! port "UTF-8")

Leo is right that we’d often write:

  (parameterize ((%default-port-encoding "UTF-8"))
    (call-with-output-file …))

because it’s marginally cleaner (the port is created with the right
encoding from the start).  In this case it doesn’t matter much though.

Thank you!

Ludo’.