diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2011-02-02 14:59:18 +0100 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2011-02-02 15:54:50 +0100 |
commit | a72ab0542ff1dd8909ba5f1065627e41e3316b45 (patch) | |
tree | 0b6fe75709ffe7dbf821ed2b7ac038f8cd49510c /package/config/confdata.c | |
parent | a538d4057e3add76889270ec097572223b11ba07 (diff) | |
download | buildroot-novena-a72ab0542ff1dd8909ba5f1065627e41e3316b45.tar.gz buildroot-novena-a72ab0542ff1dd8909ba5f1065627e41e3316b45.zip |
package/config: rebase against 2.6.38-rc3
Fixes nconfig crash on comments within choice groups.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/config/confdata.c')
-rw-r--r-- | package/config/confdata.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/package/config/confdata.c b/package/config/confdata.c index 12d94dcfa..c9f13eec7 100644 --- a/package/config/confdata.c +++ b/package/config/confdata.c @@ -439,12 +439,11 @@ static void conf_write_string(bool headerfile, const char *name, fputs("\"\n", out); } -static void conf_write_symbol(struct symbol *sym, enum symbol_type type, - FILE *out, bool write_no) +static void conf_write_symbol(struct symbol *sym, FILE *out, bool write_no) { const char *str; - switch (type) { + switch (sym->type) { case S_BOOLEAN: case S_TRISTATE: switch (sym_get_tristate_value(sym)) { @@ -531,7 +530,7 @@ int conf_write_defconfig(const char *filename) goto next_menu; } } - conf_write_symbol(sym, sym->type, out, true); + conf_write_symbol(sym, out, true); } next_menu: if (menu->list != NULL) { @@ -560,7 +559,6 @@ int conf_write(const char *name) const char *basename; const char *str; char dirname[PATH_MAX+1], tmpname[PATH_MAX+1], newname[PATH_MAX+1]; - enum symbol_type type; time_t now; int use_timestamp = 1; char *env; @@ -635,14 +633,8 @@ int conf_write(const char *name) if (!(sym->flags & SYMBOL_WRITE)) goto next; sym->flags &= ~SYMBOL_WRITE; - type = sym->type; - if (type == S_TRISTATE) { - sym_calc_value(modules_sym); - if (modules_sym->curr.tri == no) - type = S_BOOLEAN; - } /* Write config symbol to file */ - conf_write_symbol(sym, type, out, true); + conf_write_symbol(sym, out, true); } next: @@ -872,7 +864,7 @@ int conf_write_autoconf(void) continue; /* write symbol to config file */ - conf_write_symbol(sym, sym->type, out, false); + conf_write_symbol(sym, out, false); /* update autoconf and tristate files */ switch (sym->type) { @@ -978,7 +970,7 @@ static void randomize_choice_values(struct symbol *csym) int cnt, def; /* - * If choice is mod then we may have more items slected + * If choice is mod then we may have more items selected * and if no then no-one. * In both cases stop. */ @@ -1090,10 +1082,10 @@ void conf_set_all_new_symbols(enum conf_def_mode mode) /* * We have different type of choice blocks. - * If curr.tri equal to mod then we can select several + * If curr.tri equals to mod then we can select several * choice symbols in one block. * In this case we do nothing. - * If curr.tri equal yes then only one symbol can be + * If curr.tri equals yes then only one symbol can be * selected in a choice block and we set it to yes, * and the rest to no. */ |