92426585d7
Copy from Base:System/bash based on submit request 18772 from user coolo OBS-URL: https://build.opensuse.org/request/show/18772 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/bash?expand=0&rev=43
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
Index: locale.c
|
|
===================================================================
|
|
--- locale.c.orig
|
|
+++ locale.c
|
|
@@ -47,6 +47,7 @@ extern int dump_translatable_strings, du
|
|
|
|
/* The current locale when the program begins */
|
|
static char *default_locale;
|
|
+static char fallback[128];
|
|
|
|
/* The current domain for textdomain(3). */
|
|
static char *default_domain;
|
|
@@ -314,11 +315,21 @@ get_locale_var (var)
|
|
if (locale == 0 || *locale == 0)
|
|
locale = lang;
|
|
if (locale == 0 || *locale == 0)
|
|
-#if 0
|
|
- locale = default_locale; /* system-dependent; not really portable. should it be "C"? */
|
|
-#else
|
|
- locale = "";
|
|
-#endif
|
|
+ {
|
|
+ char *ptr;
|
|
+ if (default_locale && *default_locale && (ptr = strstr(default_locale, var)) && (ptr = strchr(ptr, '=')) && ++ptr)
|
|
+ {
|
|
+ memset (fallback, 0, sizeof(fallback));
|
|
+ strncpy(fallback, ptr, sizeof(fallback)-1);
|
|
+
|
|
+ if ((ptr = strchr(fallback, ';')))
|
|
+ *ptr = '\0';
|
|
+
|
|
+ locale = fallback;
|
|
+ }
|
|
+ else
|
|
+ locale = default_locale; /* system-dependent; not really portable. should it be "C"? */
|
|
+ }
|
|
return (locale);
|
|
}
|
|
|