diff options
Diffstat (limited to 'loader')
-rw-r--r-- | loader/lang.c | 6 | ||||
-rw-r--r-- | loader/lang.h | 2 | ||||
-rw-r--r-- | loader/loader.c | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/loader/lang.c b/loader/lang.c index ca0948770..2f9752ea4 100644 --- a/loader/lang.c +++ b/loader/lang.c @@ -231,15 +231,17 @@ static int loadFont(char * fontFile, int flags) { return 0; } -void setLanguage (char * key) { +void setLanguage (char * key, int flags) { int i; + if (!languages) loadLanguageList(flags); + for (i = 0; i < numLanguages; i++) { if (!strcmp(languages[i].key, key)) { setenv("LANG", languages[i].key, 1); setenv("LC_ALL", languages[i].lc_all, 1); setenv("LINGUAS", languages[i].key, 1); - loadLanguage (NULL, 0); + loadLanguage (NULL, flags); if (languages[i].map) loadFont(languages[i].map, 0); break; diff --git a/loader/lang.h b/loader/lang.h index aaacb4437..10b3ef4aa 100644 --- a/loader/lang.h +++ b/loader/lang.h @@ -7,7 +7,7 @@ int chooseLanguage(char ** lang, int flags); int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags); char * translateString(char * str); -void setLanguage (char * key); +void setLanguage (char * key, int flags); /* define ask johnsonm@redhat.com where this came from */ #define KMAP_MAGIC 0x8B39C07F diff --git a/loader/loader.c b/loader/loader.c index 6238c5dd4..0ca01d87f 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1554,7 +1554,7 @@ static int parseCmdLineFlags(int flags, char * cmdLine, char ** ksSource) { flags |= LOADER_FLAGS_KSFILE; *ksSource = argv[i] + 8; } else if (!strncasecmp(argv[i], "lang=", 5)) { - setLanguage (argv[i] + 5); + setLanguage (argv[i] + 5, flags); #ifdef INCLUDE_KON if (!strcmp (argv[i] + 5, "ja") && startKon) { char * args[5]; |