summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2003-01-13 06:11:33 +0000
committerJeremy Katz <katzj@redhat.com>2003-01-13 06:11:33 +0000
commit4a9ec0baa3343fce70914bfa9a125a31490e694b (patch)
treef483e50500e2dd86e623e761745533f78a44d276 /loader2
parentc63fabbb1985a50e7cbf1e23dfeb1027c16d61eb (diff)
downloadanaconda-4a9ec0baa3343fce70914bfa9a125a31490e694b.tar.gz
anaconda-4a9ec0baa3343fce70914bfa9a125a31490e694b.tar.xz
anaconda-4a9ec0baa3343fce70914bfa9a125a31490e694b.zip
add support for the install time language to be different from the post-intsall
language as specified in the lang-table. this is needed for cjk locales because we want to use utf-8 for them during the install (we only have bterm support for utf-8), but we can't use utf-8 post-install yet because of lack of input method support and other such problems.
Diffstat (limited to 'loader2')
-rw-r--r--loader2/lang.c13
-rw-r--r--loader2/lang.h2
2 files changed, 8 insertions, 7 deletions
diff --git a/loader2/lang.c b/loader2/lang.c
index 908d9554a..18ce36c46 100644
--- a/loader2/lang.c
+++ b/loader2/lang.c
@@ -92,7 +92,7 @@ static void loadLanguageList(int flags) {
FILE * f;
char line[256];
char name[256], key[256], font[256], map[256], code[256],
- keyboard[256], timezone[256];
+ keyboard[256], timezone[256], instlang[256];
int lineNum = 0;
f = fopen(file, "r");
@@ -105,8 +105,8 @@ static void loadLanguageList(int flags) {
while (fgets(line, sizeof(line), f)) {
lineNum++;
languages = realloc(languages, sizeof(*languages) * (numLanguages + 1));
- if (sscanf(line, "%s %s %s %s %s %s %s\n", name, key, font, map,
- code, keyboard, timezone) != 7) {
+ if (sscanf(line, "%s %s %s %s %s %s %s %s\n", name, key, font, map,
+ code, keyboard, timezone, instlang) != 8) {
logMessage("bad line %d in lang-table", lineNum);
} else {
languages[numLanguages].lang = strdup(name);
@@ -115,6 +115,7 @@ static void loadLanguageList(int flags) {
languages[numLanguages].map = strdup(map);
languages[numLanguages].lc_all = strdup(code);
languages[numLanguages].keyboard = strdup(keyboard);
+ languages[numLanguages].instlang = strdup(instlang);
numLanguages++;
}
}
@@ -213,9 +214,9 @@ static void setLangEnv (int i, int flags) {
if (!strcmp(languages[i].font, "None"))
return;
- setenv("LANG", languages[i].lc_all, 1);
+ setenv("LANG", languages[i].instlang, 1);
setenv("LANGKEY", languages[i].key, 1);
- setenv("LINGUAS", languages[i].lc_all, 1);
+ setenv("LINGUAS", languages[i].instlang, 1);
loadLanguage (NULL, flags);
}
@@ -363,7 +364,7 @@ int chooseLanguage(char ** lang, int flags) {
if (!strncmp(languages[i].key, "en", 2))
english = numLangs;
if (currentLangName &&
- !strcmp(languages[i].lc_all, currentLangName))
+ !strcmp(languages[i].instlang, currentLangName))
current = numLangs;
langs[numLangs++] = languages[i].lang;
diff --git a/loader2/lang.h b/loader2/lang.h
index 3a9af0d4a..5c0046072 100644
--- a/loader2/lang.h
+++ b/loader2/lang.h
@@ -7,7 +7,7 @@
#define N_(foo) (foo)
struct langInfo {
- char * lang, * key, * font, * map, * lc_all, * keyboard;
+ char * lang, * key, * font, * map, * lc_all, * keyboard, * instlang;
} ;