diff options
author | rubidium <rubidium@openttd.org> | 2007-03-20 14:01:21 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-03-20 14:01:21 +0000 |
commit | 9f7f58bdfc79ad13f614f0ab14f117f4575b9871 (patch) | |
tree | a511701d4a84dac3d56a45d745eac2bf67ec06d7 /src | |
parent | 94db6aa1a2849167ba5100a5f3d6393007ec988b (diff) | |
download | openttd-9f7f58bdfc79ad13f614f0ab14f117f4575b9871.tar.xz |
(svn r9373) -Fix (r9271): the chosen language was not stored nor read properly in/from the cfg.
Diffstat (limited to 'src')
-rw-r--r-- | src/strings.cpp | 8 | ||||
-rw-r--r-- | src/variables.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/strings.cpp b/src/strings.cpp index fd4b5b0f8..b855b7baa 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1116,7 +1116,8 @@ bool ReadLanguagePack(int lang_index) free(_langpack_offs); _langpack_offs = langpack_offs; - ttd_strlcpy(_dynlang.curr_file, _dynlang.ent[lang_index].file, lengthof(_dynlang.curr_file)); + const char *c_file = strrchr(_dynlang.ent[lang_index].file, PATHSEPCHAR) + 1; + ttd_strlcpy(_dynlang.curr_file, c_file, lengthof(_dynlang.curr_file)); _dynlang.curr = lang_index; SetCurrentGrfLangID(_langpack->isocode); @@ -1165,7 +1166,7 @@ static int CDECL LanguageCompareFunc(const void *a, const void *b) static bool UniqueLanguageFile(const Language *langs, uint max, const char *language) { for (uint i = 0; i < max; i++) { - const char *f_name = strrchr(langs[i].file, PATHSEPCHAR); + const char *f_name = strrchr(langs[i].file, PATHSEPCHAR) + 1; if (strcmp(f_name, language) == 0) return false; // duplicates } @@ -1268,7 +1269,8 @@ void InitializeLanguagePacks() /* We are trying to find a default language. The priority is by * configuration file, local environment and last, if nothing found, * english. If def equals -1, we have not picked a default language */ - if (strcmp(dl->ent[dl->num].file, dl->curr_file) == 0) chosen_language = dl->num; + const char *lang_file = strrchr(dl->ent[dl->num].file, PATHSEPCHAR) + 1; + if (strcmp(lang_file, dl->curr_file) == 0) chosen_language = dl->num; if (chosen_language == -1) { if (strcmp (hdr.isocode, "en_GB") == 0) en_GB_fallback = dl->num; diff --git a/src/variables.h b/src/variables.h index 7f8771a87..c6c745974 100644 --- a/src/variables.h +++ b/src/variables.h @@ -325,7 +325,7 @@ struct Language { struct DynamicLanguages { int num; ///< Number of languages int curr; ///< Currently selected language index - char curr_file[MAX_PATH]; ///< Currently selected language file (needed for saving the filename of the loaded language + char curr_file[MAX_PATH]; ///< Currently selected language file name without path (needed for saving the filename of the loaded language). StringID dropdown[MAX_LANG + 1]; ///< List of languages in the settings gui Language ent[MAX_LANG]; ///< Information about the languages }; |