OBS-URL: https://build.opensuse.org/package/show/Base:System/bash?expand=0&rev=0e684b6d69ca471a3edec76de2eeecc1
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
--- locale.c
 | 
						|
+++ locale.c	2008-11-25 13:41:50.000000000 +0000
 | 
						|
@@ -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);
 | 
						|
 }
 | 
						|
 
 |