diff options
author | Mystery Man <unknown@mandriva.org> | 2001-06-11 13:49:39 +0000 |
---|---|---|
committer | Mystery Man <unknown@mandriva.org> | 2001-06-11 13:49:39 +0000 |
commit | 16bde8b3d7027aba56051fbf557b7735eb2ee6aa (patch) | |
tree | 0d8736af65eea4a83b8445ee8e2a6d0c951aea67 /mdk-stage1/automatic.c | |
parent | 0a121a8ecd6de894c14d60daf9da2022ec47405c (diff) | |
download | drakx-16bde8b3d7027aba56051fbf557b7735eb2ee6aa.tar drakx-16bde8b3d7027aba56051fbf557b7735eb2ee6aa.tar.gz drakx-16bde8b3d7027aba56051fbf557b7735eb2ee6aa.tar.bz2 drakx-16bde8b3d7027aba56051fbf557b7735eb2ee6aa.tar.xz drakx-16bde8b3d7027aba56051fbf557b7735eb2ee6aa.zip |
This commit was manufactured by cvs2svn to create branch 'rp-pppoe'.topic/rp-pppoe
Diffstat (limited to 'mdk-stage1/automatic.c')
-rw-r--r-- | mdk-stage1/automatic.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/mdk-stage1/automatic.c b/mdk-stage1/automatic.c deleted file mode 100644 index 486a829de..000000000 --- a/mdk-stage1/automatic.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Guillaume Cottenceau (gc@mandrakesoft.com) - * - * Copyright 2000 MandrakeSoft - * - * This software may be freely redistributed under the terms of the GNU - * public license. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -/* - * This is supposed to replace the redhat "kickstart", by name but - * also by design (less code pollution). - * - */ - - -#include <unistd.h> -#include <stdlib.h> -#include <string.h> -#include "tools.h" -#include "stage1.h" -#include "frontend.h" -#include "log.h" - -#include "automatic.h" - - -static struct param_elem * automatic_params; -static char * value_not_bound = ""; - -void grab_automatic_params(char * line) -{ - int i, p; - struct param_elem tmp_params[50]; - - i = 0; p = 0; - while (line[i] != '\0') { - char *name, *value; - int k; - int j = i; - while (line[i] != ':' && line[i] != '\0') - i++; - name = memdup(&line[j], i-j + 1); - name[i-j] = 0; - - k = i+1; - i++; - while (line[i] != ',' && line[i] != '\0') - i++; - value = memdup(&line[k], i-k + 1); - value[i-k] = 0; - - tmp_params[p].name = name; - tmp_params[p].value = value; - p++; - if (line[i] == '\0') - break; - i++; - } - - tmp_params[p++].name = NULL; - automatic_params = memdup(tmp_params, sizeof(struct param_elem) * p); - - log_message("AUTOMATIC MODE: got %d params", p-1); -} - - -char * get_auto_value(char * auto_param) -{ - struct param_elem * ptr = automatic_params; - - while (ptr->name) { - if (!strcmp(ptr->name, auto_param)) - return ptr->value; - ptr++; - } - - return value_not_bound; -} - - -enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, char * auto_param, char ** elems_auto) -{ - if (!IS_AUTOMATIC) - return ask_from_list(msg, elems, choice); - else { - char ** sav_elems = elems; - char * tmp = get_auto_value(auto_param); - while (elems && *elems) { - if (!strcmp(tmp, *elems_auto)) { - *choice = *elems; - log_message("AUTOMATIC: parameter %s for %s means returning %s", tmp, auto_param, *elems); - return RETURN_OK; - } - elems++; - elems_auto++; - } - unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */ - return ask_from_list(msg, sav_elems, choice); - } -} - -enum return_type ask_from_list_comments_auto(char *msg, char ** elems, char ** elems_comments, char ** choice, char * auto_param, char ** elems_auto) -{ - if (!IS_AUTOMATIC) - return ask_from_list_comments(msg, elems, elems_comments, choice); - else { - char ** sav_elems = elems; - char * tmp = get_auto_value(auto_param); - while (elems && *elems) { - if (!strcmp(tmp, *elems_auto)) { - *choice = *elems; - log_message("AUTOMATIC: parameter %s for %s means returning %s", tmp, auto_param, *elems); - return RETURN_OK; - } - elems++; - elems_auto++; - } - unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */ - return ask_from_list_comments(msg, sav_elems, elems_comments, choice); - } -} - - -enum return_type ask_from_entries_auto(char *msg, char ** questions, char *** answers, int entry_size, char ** questions_auto, void (*callback_func)(char ** strings)) -{ - if (!IS_AUTOMATIC) - return ask_from_entries(msg, questions, answers, entry_size, callback_func); - else { - char * tmp_answers[50]; - int i = 0; - while (questions && *questions) { - tmp_answers[i] = get_auto_value(*questions_auto); - log_message("AUTOMATIC: question %s answers %s because of param %s", *questions, tmp_answers[i], *questions_auto); - i++; - questions++; - questions_auto++; - - } - *answers = memdup(tmp_answers, sizeof(char *) * i); - return RETURN_OK; - } -} |