summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--loader/lang.c6
-rw-r--r--loader/lang.h2
-rw-r--r--loader/loader.c2
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];