Andreas Schwab
25084a9191
- intl-c-utf-8-like-c-locale.patch: intl: Treat C.UTF-8 locale like C locale (BZ #16621) - glibc-disable-gettext-for-c-utf8.patch: Removed OBS-URL: https://build.opensuse.org/request/show/1109216 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=666
40 lines
1.5 KiB
Diff
40 lines
1.5 KiB
Diff
From 2897b231a6b71ee17d47d3d63f1112b2641a476c Mon Sep 17 00:00:00 2001
|
|
From: Bruno Haible <bruno@clisp.org>
|
|
Date: Mon, 4 Sep 2023 15:31:36 +0200
|
|
Subject: [PATCH] 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>
|
|
---
|
|
intl/dcigettext.c | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
|
|
index 7886ac9545..27063886d2 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
|
|
--
|
|
2.42.0
|
|
|