Author: cazfi Date: Thu Mar 3 07:12:22 2016 New Revision: 32158 URL: http://svn.gna.org/viewcvs/freeciv?rev=32158&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: trunk/client/gui-sdl2/themespec.c trunk/utility/shared.c trunk/utility/shared.h Modified: trunk/client/gui-sdl2/themespec.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-sdl2/themespec.c?rev=32158&r1=32157&r2=32158&view=diff ============================================================================== --- trunk/client/gui-sdl2/themespec.c (original) +++ trunk/client/gui-sdl2/themespec.c Thu Mar 3 07:12:22 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: trunk/utility/shared.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/utility/shared.c?rev=32158&r1=32157&r2=32158&view=diff ============================================================================== --- trunk/utility/shared.c (original) +++ trunk/utility/shared.c Thu Mar 3 07:12:22 2016 @@ -1434,12 +1434,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 @@ -1447,76 +1446,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 */ @@ -1541,13 +1581,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: trunk/utility/shared.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/utility/shared.h?rev=32158&r1=32157&r2=32158&view=diff ============================================================================== --- trunk/utility/shared.h (original) +++ trunk/utility/shared.h Thu Mar 3 07:12:22 2016 @@ -178,9 +178,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