diff options
author | Bruno Haible <bruno@clisp.org> | 2023-09-04 15:31:36 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2023-09-04 15:31:36 +0200 |
commit | 2897b231a6b71ee17d47d3d63f1112b2641a476c (patch) | |
tree | 5bb05584cf0c39966b55fdd4f44732463b04e867 /intl/dcigettext.c | |
parent | 807690610916df8aef17cd14bfadd5d4b6e699a9 (diff) | |
download | glibc-2897b231a6b71ee17d47d3d63f1112b2641a476c.zip glibc-2897b231a6b71ee17d47d3d63f1112b2641a476c.tar.gz glibc-2897b231a6b71ee17d47d3d63f1112b2641a476c.tar.bz2 |
intl: Treat C.UTF-8 locale like C locale (BZ# 16621)
The wiki page https://sourceware.org/glibc/wiki/Proposals/C.UTF-8
says that "Setting LC_ALL=C.UTF-8 will ignore LANGUAGE just like it
does with LC_ALL=C." This patch implements it.
* intl/dcigettext.c (guess_category_value): Treat C.<encoding> locale
like the C locale.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Diffstat (limited to 'intl/dcigettext.c')
-rw-r--r-- | intl/dcigettext.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/intl/dcigettext.c b/intl/dcigettext.c index 7886ac9..2706388 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -1560,8 +1560,12 @@ guess_category_value (int category, const char *categoryname) 2. The precise output of some programs in the "C" locale is specified by POSIX and should not depend on environment variables like "LANGUAGE" or system-dependent information. We allow such programs - to use gettext(). */ - if (strcmp (locale, "C") == 0) + to use gettext(). + Ignore LANGUAGE and its system-dependent analogon also if the locale is + set to "C.UTF-8" or, more generally, to "C.<encoding>", because that's + the by-design behaviour for glibc, see + <https://sourceware.org/glibc/wiki/Proposals/C.UTF-8>. */ + if (locale[0] == 'C' && (locale[1] == '\0' || locale[1] == '.')) return locale; /* The highest priority value is the value of the 'LANGUAGE' environment |