diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | loader2/kbd.c | 9 | ||||
-rw-r--r-- | loader2/kbd.h | 2 | ||||
-rw-r--r-- | loader2/loader.c | 2 |
4 files changed, 16 insertions, 5 deletions
@@ -1,3 +1,11 @@ +2005-12-19 Chris Lumens <clumens@redhat.com> + + * kbd.c (chooseKeyboard): Use the selected language in loaderData + instead of in $LANG to determine default keyboard layout (#172266). + Change chooseKeyboard to take in loaderData instead. + * kbd.h: Likewise. + * loader.c (doLoaderMain): Likewise. + 2005-12-19 Jeremy Katz <katzj@redhat.com> * scripts/mk-images.x86_64 (SYSLINUX): Generate syslinux splash diff --git a/loader2/kbd.c b/loader2/kbd.c index bbf0f2cfd..f8de6c98b 100644 --- a/loader2/kbd.c +++ b/loader2/kbd.c @@ -31,7 +31,7 @@ #include "../isys/stubs.h" #include "../isys/lang.h" -int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags) { +int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep, int flags) { int num = -1; int rc; gzFile f; @@ -42,7 +42,7 @@ int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags) { char ** kbds; char buf[16384]; /* I hope this is big enough */ int i; - char * defkbd = keymap ? *keymap : NULL; + char * defkbd = loaderData->kbd ? loaderData->kbd : NULL; char *lang; #if defined(__s390__) || defined(__s390x__) @@ -68,6 +68,9 @@ int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags) { numLanguages = getLangInfo(&languages, flags); lang = getenv("LANG"); + if (!lang) + lang = loaderData->lang; + if (!defkbd && lang) { for (i = 0; i < numLanguages; i++) { if (!strncmp(languages[i].lc_all, lang, 2)) { @@ -153,7 +156,7 @@ int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags) { gunzip_close(f); - if (keymap) *keymap = strdup(infoTable[num].name); + loaderData->kbd = strdup(infoTable[num].name); #ifdef __sparc__ if (kbdtypep) *kbdtypep = (kbdtype == KBDTYPE_SUN) ? "sun" : "pc"; diff --git a/loader2/kbd.h b/loader2/kbd.h index 90a4f88b1..d4cb70c44 100644 --- a/loader2/kbd.h +++ b/loader2/kbd.h @@ -1,7 +1,7 @@ #ifndef H_KBD #define H_KBD -int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags); +int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep, int flags); void setKickstartKeyboard(struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr); diff --git a/loader2/loader.c b/loader2/loader.c index 439f35ce0..098f99f0c 100644 --- a/loader2/loader.c +++ b/loader2/loader.c @@ -836,7 +836,7 @@ static char *doLoaderMain(char * location, } else { /* JKFIXME: should handle kbdtype, too probably... but it * just matters for sparc */ - rc = chooseKeyboard(&loaderData->kbd, &kbdtype, flags); + rc = chooseKeyboard(loaderData, &kbdtype, flags); } if (rc == LOADER_NOOP) { if (dir == -1) |