From: Paul Nasrat Date: Tue, 15 May 2007 13:14:43 +0000 (+0100) Subject: User-specified config file on Yaboot's prompt X-Git-Tag: yaboot-1.3.14rc2~6 X-Git-Url: https://git.ozlabs.org/?p=tonyb-yaboot.git;a=commitdiff_plain;h=750ce1ac64bea60a4c072373ed9661c8b180b627;hp=7305a1de1f811a7e5afe9ec24244848c298ef352 User-specified config file on Yaboot's prompt This patch clears out the kernel image list before loading a new config file. Leonardo Rangel lrangel at linux.vnet.ibm.com --- diff --git a/second/cfg.c b/second/cfg.c index 56b058a..d7f4084 100644 --- a/second/cfg.c +++ b/second/cfg.c @@ -422,6 +422,30 @@ cfg_set_redo: return 0; } +static int cfg_reset () +{ + CONFIG *walk; +#if DEBUG + prom_printf("Resetting image table\n"); +#endif + line_num = 0; + images = NULL; + curr_table = NULL; + curr_table = cf_options; + for (walk = curr_table; walk->type != cft_end; walk++) { +#if DEBUG + prom_printf("ItemA %s = %s\n", walk->name, walk->data); +#endif + if (walk->data != NULL) + walk->data = NULL; +#if DEBUG + prom_printf("ItemB %s = %s\n\n", walk->name, walk->data); +#endif + } + + return 0; +} + int cfg_parse (char *cfg_file, char *buff, int len) { char *item, *value; @@ -430,6 +454,8 @@ int cfg_parse (char *cfg_file, char *buff, int len) currp = buff; endp = currp + len; + cfg_reset(); + if (setjmp (env)) return -1; while (1) {