* Startup locale and environ_locale_charset
@ 2019-04-28 5:22 Mike Gran
2019-04-28 17:25 ` Mark H Weaver
0 siblings, 1 reply; 2+ messages in thread
From: Mike Gran @ 2019-04-28 5:22 UTC (permalink / raw)
To: guile-devel
Starting in the 2.2.x series, the Guile executable calls
setlocale(LC_ALL,"") on startup except when the GUILE_INSTALL_LOCALE
environment variable is set to '0'.
This leads to a call to scm_shell that converts command line arguments
to Guile strings using the current locale. But in doing so, it calls
a function environ_locale_charset() that presumes that setlocale
hasn't been called. This appears to be obsolete, and probably be
replaced with just a call to gnulib's locale_charset().
It is a bit of an issue because it would prevent a possible future
update to gnulib, which no longer provides the get_charset_aliases()
procedure on which environ_locale_charset() has depended.
If there is no objection, I'd like to remove environ_locale_charset().
But doing this would theoretically lead to a user-visible change. If
there were a user that had set the GUILE_INSTALL_LOCALE environment
variable to zero, intentionally bringing up Guile in the "C" locale,
but, still relied on Guile parsing non-ASCII command line arguments in
the environment's LANG-specified locale, it might lead to a different
behavior.
I'm fairly certain that this corner case would never occur in real
life. A search-engine search on GUILE_INSTALL_LOCALE reveals no cases
of anyone having set it to zero.
What do you think?
-Mike Gran
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Startup locale and environ_locale_charset
2019-04-28 5:22 Startup locale and environ_locale_charset Mike Gran
@ 2019-04-28 17:25 ` Mark H Weaver
0 siblings, 0 replies; 2+ messages in thread
From: Mark H Weaver @ 2019-04-28 17:25 UTC (permalink / raw)
To: Mike Gran; +Cc: guile-devel
Hi Mike,
Mike Gran <spk121@yahoo.com> writes:
> Starting in the 2.2.x series, the Guile executable calls
> setlocale(LC_ALL,"") on startup except when the GUILE_INSTALL_LOCALE
> environment variable is set to '0'.
>
> This leads to a call to scm_shell that converts command line arguments
> to Guile strings using the current locale. But in doing so, it calls
> a function environ_locale_charset() that presumes that setlocale
> hasn't been called. This appears to be obsolete, and probably be
> replaced with just a call to gnulib's locale_charset().
>
> It is a bit of an issue because it would prevent a possible future
> update to gnulib, which no longer provides the get_charset_aliases()
> procedure on which environ_locale_charset() has depended.
>
> If there is no objection, I'd like to remove environ_locale_charset().
Sounds good to me, go ahead. The comment above the only use of
'environ_locale_charset' also makes it clear that the plan was to remove
this hack before 2.2.
> But doing this would theoretically lead to a user-visible change. If
> there were a user that had set the GUILE_INSTALL_LOCALE environment
> variable to zero, intentionally bringing up Guile in the "C" locale,
> but, still relied on Guile parsing non-ASCII command line arguments in
> the environment's LANG-specified locale, it might lead to a different
> behavior.
I'm not worried about it, but I appreciate your attention to detail!
Thanks,
Mark
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-04-28 17:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-28 5:22 Startup locale and environ_locale_charset Mike Gran
2019-04-28 17:25 ` Mark H Weaver
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).