tdecacqu / rpms / systemd

Forked from rpms/systemd 3 years ago
Clone
a1c89c5
From 07bceef2a9c520e24da427c7ce500ad36ad37571 Mon Sep 17 00:00:00 2001
a1c89c5
From: Lennart Poettering <lennart@poettering.net>
a1c89c5
Date: Wed, 31 Aug 2011 14:09:14 +0200
a1c89c5
Subject: [PATCH] locale: support $LANGUAGE too
a1c89c5
a1c89c5
$LANGUAGE is a GNU extension that is probably worth supporting, since it
a1c89c5
allows specifiying an order of languages.
a1c89c5
a1c89c5
https://bugs.freedesktop.org/show_bug.cgi?id=40510
a1c89c5
---
a1c89c5
a1c89c5
[removed the localed.c patch -- michich]
a1c89c5
a1c89c5
 man/locale.conf.xml     |    2 ++
a1c89c5
 src/locale-setup.c      |    8 ++++++--
a1c89c5
 units/getty@.service.m4 |    2 +-
a1c89c5
 4 files changed, 12 insertions(+), 3 deletions(-)
a1c89c5
a1c89c5
diff --git a/man/locale.conf.xml b/man/locale.conf.xml
a1c89c5
index 742c5eb..3723997 100644
a1c89c5
--- a/man/locale.conf.xml
a1c89c5
+++ b/man/locale.conf.xml
a1c89c5
@@ -69,6 +69,7 @@
a1c89c5
 
a1c89c5
                 <para>Note that the kernel command line options
a1c89c5
                 <varname>locale.LANG=</varname>,
a1c89c5
+                <varname>locale.LANGUAGE=</varname>,
a1c89c5
                 <varname>locale.LC_CTYPE=</varname>,
a1c89c5
                 <varname>locale.LC_NUMERIC=</varname>,
a1c89c5
                 <varname>locale.LC_TIME=</varname>,
a1c89c5
@@ -101,6 +102,7 @@
a1c89c5
                 <para>The following locale settings may be set using
a1c89c5
                 <filename>/etc/locale.conf</filename>:
a1c89c5
                 <varname>LANG=</varname>,
a1c89c5
+                <varname>LANGUAGE=</varname>,
a1c89c5
                 <varname>LC_CTYPE=</varname>,
a1c89c5
                 <varname>LC_NUMERIC=</varname>,
a1c89c5
                 <varname>LC_TIME=</varname>,
a1c89c5
diff --git a/src/locale-setup.c b/src/locale-setup.c
a1c89c5
index 33111da..41eb50b 100644
a1c89c5
--- a/src/locale-setup.c
a1c89c5
+++ b/src/locale-setup.c
a1c89c5
@@ -32,6 +32,7 @@ enum {
a1c89c5
          * using LANG instead. */
a1c89c5
 
a1c89c5
         VARIABLE_LANG,
a1c89c5
+        VARIABLE_LANGUAGE,
a1c89c5
         VARIABLE_LC_CTYPE,
a1c89c5
         VARIABLE_LC_NUMERIC,
a1c89c5
         VARIABLE_LC_TIME,
a1c89c5
@@ -49,6 +50,7 @@ enum {
a1c89c5
 
a1c89c5
 static const char * const variable_names[_VARIABLE_MAX] = {
a1c89c5
         [VARIABLE_LANG] = "LANG",
a1c89c5
+        [VARIABLE_LANGUAGE] = "LANGUAGE",
a1c89c5
         [VARIABLE_LC_CTYPE] = "LC_CTYPE",
a1c89c5
         [VARIABLE_LC_NUMERIC] = "LC_NUMERIC",
a1c89c5
         [VARIABLE_LC_TIME] = "LC_TIME",
a1c89c5
@@ -75,6 +77,7 @@ int locale_setup(void) {
a1c89c5
                                         "LANG",                     &variables[VARIABLE_LANG],
a1c89c5
 #endif
a1c89c5
                                         "locale.LANG",              &variables[VARIABLE_LANG],
a1c89c5
+                                        "locale.LANGUAGE",          &variables[VARIABLE_LANGUAGE],
a1c89c5
                                         "locale.LC_CTYPE",          &variables[VARIABLE_LC_CTYPE],
a1c89c5
                                         "locale.LC_NUMERIC",        &variables[VARIABLE_LC_NUMERIC],
a1c89c5
                                         "locale.LC_TIME",           &variables[VARIABLE_LC_TIME],
a1c89c5
@@ -98,6 +101,7 @@ int locale_setup(void) {
a1c89c5
         if (r <= 0 &&
a1c89c5
             (r = parse_env_file("/etc/locale.conf", NEWLINE,
a1c89c5
                                "LANG",              &variables[VARIABLE_LANG],
a1c89c5
+                               "LANGUAGE",          &variables[VARIABLE_LANGUAGE],
a1c89c5
                                "LC_CTYPE",          &variables[VARIABLE_LC_CTYPE],
a1c89c5
                                "LC_NUMERIC",        &variables[VARIABLE_LC_NUMERIC],
a1c89c5
                                "LC_TIME",           &variables[VARIABLE_LC_TIME],
a1c89c5
@@ -212,8 +216,8 @@ int locale_setup(void) {
a1c89c5
                                 "LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION],
a1c89c5
                                 NULL)) < 0) {
a1c89c5
 
a1c89c5
-		if (r != -ENOENT)
a1c89c5
-			log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
a1c89c5
+                if (r != -ENOENT)
a1c89c5
+                        log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
a1c89c5
         }
a1c89c5
 
a1c89c5
 #endif
a1c89c5
diff --git a/units/getty@.service.m4 b/units/getty@.service.m4
a1c89c5
index b111567..14d8187 100644
a1c89c5
--- a/units/getty@.service.m4
a1c89c5
+++ b/units/getty@.service.m4
a1c89c5
@@ -44,7 +44,7 @@ KillMode=process
a1c89c5
 
a1c89c5
 # Unset locale for the console getty since the console has problems
a1c89c5
 # displaying some internationalized messages.
a1c89c5
-Environment=LANG= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
a1c89c5
+Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
a1c89c5
 
a1c89c5
 # Some login implementations ignore SIGTERM, so we send SIGHUP
a1c89c5
 # instead, to ensure that login terminates cleanly.
a1c89c5
-- 
a1c89c5
1.7.4.4
a1c89c5