aboutsummaryrefslogtreecommitdiff
path: root/package/config/confdata.c
diff options
context:
space:
mode:
authorGravatar Peter Korsgaard <jacmet@sunsite.dk>2011-02-02 14:59:18 +0100
committerGravatar Peter Korsgaard <jacmet@sunsite.dk>2011-02-02 15:54:50 +0100
commita72ab0542ff1dd8909ba5f1065627e41e3316b45 (patch)
tree0b6fe75709ffe7dbf821ed2b7ac038f8cd49510c /package/config/confdata.c
parenta538d4057e3add76889270ec097572223b11ba07 (diff)
downloadbuildroot-a72ab0542ff1dd8909ba5f1065627e41e3316b45.tar.gz
buildroot-a72ab0542ff1dd8909ba5f1065627e41e3316b45.tar.bz2
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.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/package/config/confdata.c b/package/config/confdata.c
index 12d94dcfa9..c9f13eec74 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.
*/