Author: cazfi
Date: Thu Mar  3 07:12:43 2016
New Revision: 32159

URL: http://svn.gna.org/viewcvs/freeciv?rev=32159&view=rev
Log:
Renamed get_langname() as setup_langname(), and made it to guarantee that LANG 
environment variable is
set correctly. Removed Windows-specific code from the caller side setting the 
environment variable there.

See patch #7022

Modified:
    branches/S2_6/client/gui-sdl/themespec.c
    branches/S2_6/client/gui-sdl2/themespec.c
    branches/S2_6/utility/shared.c
    branches/S2_6/utility/shared.h

Modified: branches/S2_6/client/gui-sdl/themespec.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl/themespec.c?rev=32159&r1=32158&r2=32159&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl/themespec.c    (original)
+++ branches/S2_6/client/gui-sdl/themespec.c    Thu Mar  3 07:12:43 2016
@@ -1,4 +1,4 @@
-/********************************************************************** 
+/**********************************************************************
  Freeciv - Copyright (C) 2005 - The Freeciv Project
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -739,8 +739,8 @@
 
   sz_strlcpy(t->name, theme_name);
   t->priority = secfile_lookup_int_default(file, 0, "themespec.priority");
-  
-  langname = get_langname();
+
+  langname = setup_langname();
   if (langname) {
     if (strstr(langname, "zh_CN") != NULL) {
       c = secfile_lookup_str(file, "themespec.font_file_zh_CN");

Modified: branches/S2_6/client/gui-sdl2/themespec.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-sdl2/themespec.c?rev=32159&r1=32158&r2=32159&view=diff
==============================================================================
--- branches/S2_6/client/gui-sdl2/themespec.c   (original)
+++ branches/S2_6/client/gui-sdl2/themespec.c   Thu Mar  3 07:12:43 2016
@@ -1,4 +1,4 @@
-/********************************************************************** 
+/**********************************************************************
  Freeciv - Copyright (C) 2005 - The Freeciv Project
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -748,7 +748,7 @@
   sz_strlcpy(t->name, theme_name);
   t->priority = secfile_lookup_int_default(file, 0, "themespec.priority");
 
-  langname = get_langname();
+  langname = setup_langname();
   if (langname) {
     if (strstr(langname, "zh_CN") != NULL) {
       c = secfile_lookup_str(file, "themespec.font_file_zh_CN");

Modified: branches/S2_6/utility/shared.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/utility/shared.c?rev=32159&r1=32158&r2=32159&view=diff
==============================================================================
--- branches/S2_6/utility/shared.c      (original)
+++ branches/S2_6/utility/shared.c      Thu Mar  3 07:12:43 2016
@@ -1463,12 +1463,11 @@
 /***************************************************************************
   Language environmental variable (with emulation).
 ***************************************************************************/
-char *get_langname(void)
+char *setup_langname(void)
 {
   char *langname = NULL;
 
 #ifdef ENABLE_NLS
-
   langname = getenv("LANG");
 
 #ifdef WIN32_NATIVE
@@ -1476,76 +1475,117 @@
   if (!langname) {
     switch (PRIMARYLANGID(GetUserDefaultLangID())) {
       case LANG_ARABIC:
-        return "ar";
+        langname = "ar";
+        break;
       case LANG_CATALAN:
-        return "ca";
+        langname = "ca";
+        break;
       case LANG_CZECH:
-        return "cs";
+        langname = "cs";
+        break;
       case LANG_DANISH:
-        return "da";
+        langname = "da";
+        break;
       case LANG_GERMAN:
-        return "de";
+        langname = "de";
+        break;
       case LANG_GREEK:
-        return "el";
+        langname = "el";
+        break;
       case LANG_ENGLISH:
         switch (SUBLANGID(GetUserDefaultLangID())) {
           case SUBLANG_ENGLISH_UK:
-            return "en_GB";
+            langname = "en_GB";
+            break;
           default:
-            return "en";
+            langname = "en";
+            break;
         }
+        break;
       case LANG_SPANISH:
-        return "es";
+        langname = "es";
+        break;
       case LANG_ESTONIAN:
-        return "et";
+        langname = "et";
+        break;
       case LANG_FARSI:
-        return "fa";
+        langname = "fa";
+        break;
       case LANG_FINNISH:
-        return "fi";
+        langname = "fi";
+        break;
       case LANG_FRENCH:
-        return "fr";
+        langname = "fr";
+        break;
       case LANG_HEBREW:
-        return "he";
+        langname = "he";
+        break;
       case LANG_HUNGARIAN:
-        return "hu";
+        langname = "hu";
+        break;
       case LANG_ITALIAN:
-        return "it";
+        langname = "it";
+        break;
       case LANG_JAPANESE:
-        return "ja";
+        langname = "ja";
+        break;
       case LANG_KOREAN:
-        return "ko";
+        langname = "ko";
+        break;
       case LANG_LITHUANIAN:
-        return "lt";
+        langname = "lt";
+        break;
       case LANG_DUTCH:
-        return "nl";
+        langname = "nl";
+        break;
       case LANG_NORWEGIAN:
         switch (SUBLANGID(GetUserDefaultLangID())) {
           case SUBLANG_NORWEGIAN_BOKMAL:
-            return "nb";
+            langname = "nb";
+            break;
           default:
-            return "no";
+            langname = "no";
+            break;
         }
+        break;
       case LANG_POLISH:
-        return "pl";
+        langname = "pl";
+        break;
       case LANG_PORTUGUESE:
         switch (SUBLANGID(GetUserDefaultLangID())) {
           case SUBLANG_PORTUGUESE_BRAZILIAN:
-            return "pt_BR";
+            langname = "pt_BR";
+            break;
           default:
-            return "pt";
+            langname = "pt";
+            break;
         }
+        break;
       case LANG_ROMANIAN:
-        return "ro";
+        langname = "ro";
+        break;
       case LANG_RUSSIAN:
-        return "ru";
+        langname = "ru";
+        break;
       case LANG_SWEDISH:
-        return "sv";
+        langname = "sv";
+        break;
       case LANG_TURKISH:
-        return "tr";
+        langname = "tr";
+        break;
       case LANG_UKRAINIAN:
-        return "uk";
+        langname = "uk";
+        break;
       case LANG_CHINESE:
-        return "zh_CN";
+        langname = "zh_CN";
+        break;
+    }
+
+    if (langname != NULL) {
+      static char envstr[40];
+
+      fc_snprintf(envstr, sizeof(envstr), "LANG=%s", langname);
+      putenv(envstr);
     }
   }
 #endif /* WIN32_NATIVE */
@@ -1570,13 +1610,7 @@
 #ifdef ENABLE_NLS
 
 #ifdef WIN32_NATIVE
-  char *langname = get_langname();
-  if (langname) {
-    static char envstr[40];
-
-    fc_snprintf(envstr, sizeof(envstr), "LANG=%s", langname);
-    putenv(envstr);
-  }
+  setup_langname(); /* Makes sure LANG env variable has been set */
 #endif /* WIN32_NATIVE */
 
   (void) setlocale(LC_ALL, "");

Modified: branches/S2_6/utility/shared.h
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/utility/shared.h?rev=32159&r1=32158&r2=32159&view=diff
==============================================================================
--- branches/S2_6/utility/shared.h      (original)
+++ branches/S2_6/utility/shared.h      Thu Mar  3 07:12:43 2016
@@ -177,9 +177,10 @@
 const char *fileinfoname(const struct strvec *dirs, const char *filename);
 void free_fileinfo_data(void);
 
-char *get_langname(void);
 void init_nls(void);
 void free_nls(void);
+char *setup_langname(void);
+
 void dont_run_as_root(const char *argv0, const char *fallback);
 
 /*** matching prefixes: ***/


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to