summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>1999-09-13 06:29:44 +0000
committerMatt Wilson <msw@redhat.com>1999-09-13 06:29:44 +0000
commitbb20c21ac383238d139fbffeece06efd8ed5620b (patch)
treee252ac9cb57da771d144e4825410797918c683ad /loader
parentf0c6f0eabd94c0c9935fdab940fa24c140299c12 (diff)
downloadanaconda-bb20c21ac383238d139fbffeece06efd8ed5620b.tar.gz
anaconda-bb20c21ac383238d139fbffeece06efd8ed5620b.tar.xz
anaconda-bb20c21ac383238d139fbffeece06efd8ed5620b.zip
more changes
Diffstat (limited to 'loader')
-rw-r--r--loader/lang.c4
-rw-r--r--loader/lang.h2
-rw-r--r--loader/loader.c36
3 files changed, 30 insertions, 12 deletions
diff --git a/loader/lang.c b/loader/lang.c
index 15d725025..ba745db1a 100644
--- a/loader/lang.c
+++ b/loader/lang.c
@@ -213,7 +213,7 @@ static int loadFont(char * fontFile, int flags) {
return 0;
}
-int chooseLanguage(int flags) {
+int chooseLanguage(char ** lang, int flags) {
int choice = 0;
char ** langs;
int i;
@@ -246,6 +246,8 @@ int chooseLanguage(int flags) {
"during the installation process?"), 40, 5, 5, 8,
langs, &choice, _("OK"), NULL);
+ *lang = languages[choice].key;
+
if (choice == english) {
/* stick with the default (English) */
unsetenv("LANG");
diff --git a/loader/lang.h b/loader/lang.h
index bd0454cbe..ce5c6fd0d 100644
--- a/loader/lang.h
+++ b/loader/lang.h
@@ -4,7 +4,7 @@
#define _(x) translateString (x)
#define N_(foo) (foo)
-int chooseLanguage(int flags);
+int chooseLanguage(char ** lang, int flags);
int chooseKeyboard(char ** keymap, char ** kbdtypep, int flags);
char * translateString(char * str);
diff --git a/loader/loader.c b/loader/loader.c
index b9ee0b8bb..67d532160 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -957,10 +957,15 @@ static char * mountUrlImage(struct installMethod * method,
#endif
-static char * doMountImage(char * location, struct knownDevices * kd,
- moduleInfoSet modInfo,
- moduleList modLoaded,
- moduleDeps modDeps, int flags) {
+static char * doMountImage(char * location,
+ struct knownDevices * kd,
+ moduleInfoSet modInfo,
+ moduleList modLoaded,
+ moduleDeps modDeps,
+ char ** lang,
+ char ** keymap,
+ char ** kbdtype,
+ int flags) {
static int defaultMethod = 0;
int i, rc;
int validMethods[10];
@@ -971,8 +976,6 @@ static char * doMountImage(char * location, struct knownDevices * kd,
int localAvailable = 0;
void * class;
char * url = NULL;
- char * keymap = NULL;
- char * kbdtype = NULL;
enum { STEP_LANG, STEP_KBD, STEP_METHOD, STEP_URL, STEP_DONE } step;
if ((class = isysGetModuleList(modInfo, DRIVER_NET))) {
@@ -1039,12 +1042,12 @@ static char * doMountImage(char * location, struct knownDevices * kd,
while (step != STEP_DONE) {
switch (step) {
case STEP_LANG:
- chooseLanguage(flags);
+ chooseLanguage(lang, flags);
step = STEP_KBD;
break;
case STEP_KBD:
- rc = chooseKeyboard (&keymap, &kbdtype, flags);
+ rc = chooseKeyboard (keymap, kbdtype, flags);
if (rc == LOADER_BACK)
step = STEP_LANG;
@@ -1410,6 +1413,9 @@ int main(int argc, char ** argv) {
int i, rc;
int flags = 0;
int testing = 0;
+ char * lang = NULL;
+ char * keymap = NULL;
+ char * kbdtype = NULL;
struct knownDevices kd;
moduleInfoSet modInfo;
char * ksFile = NULL, * ksSource = NULL;
@@ -1518,8 +1524,9 @@ logMessage("Flags are 0x%x\n", flags);
}
if (!url) {
- url = doMountImage("/mnt/source", &kd, modInfo, modLoaded, modDeps,
- flags);
+ url = doMountImage("/mnt/source", &kd, modInfo, modLoaded, modDeps,
+ &lang, &keymap, &kbdtype,
+ flags);
}
if (!FL_TESTING(flags)) {
@@ -1613,6 +1620,15 @@ logMessage("Flags are 0x%x\n", flags);
*argptr++ = ksFile;
}
+ *argptr++ = "--lang";
+ *argptr++ = lang;
+
+ *argptr++ = "--keymap";
+ *argptr++ = keymap;
+
+ *argptr++ = "--kbdtype";
+ *argptr++ = kbdtype;
+
*argptr = NULL;
if (!FL_TESTING(flags)) {