@@ -439,8 +439,6 @@ static void report_conf(struct menu *menu, bool verbose)
{
struct symbol *sym;
struct menu *child;
- int l;
- const char *str;
if (!menu_is_visible(menu))
return;
@@ -455,49 +453,7 @@ static void report_conf(struct menu *menu, bool verbose)
if (sym && (sym->flags & SYMBOL_NEW) &&
sym_is_changable(sym) && sym->name && !sym_is_choice_value(sym)) {
if (verbose) {
- switch (sym->type) {
- case S_BOOLEAN:
- case S_TRISTATE:
- switch (sym_get_tristate_value(sym)) {
- case no:
- printf("# CONFIG_%s is not set\n", sym->name);
- break;
- case mod:
- printf("CONFIG_%s=m\n", sym->name);
- break;
- case yes:
- printf("CONFIG_%s=y\n", sym->name);
- break;
- }
- break;
- case S_STRING:
- str = sym_get_string_value(sym);
- printf("CONFIG_%s=\"", sym->name);
- while (1) {
- l = strcspn(str, "\"\\");
- if (l) {
- fwrite(str, l, 1, stdout);
- str += l;
- }
- if (!*str)
- break;
- printf("\\%c", *str++);
- }
- fputs("\"\n", stdout);
- break;
- case S_HEX:
- str = sym_get_string_value(sym);
- if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
- printf("CONFIG_%s=%s\n", sym->name, str);
- break;
- }
- case S_INT:
- str = sym_get_string_value(sym);
- printf("CONFIG_%s=%s\n", sym->name, str);
- break;
- default:
- break;
- }
+ conf_write_symbol(sym, sym->type, stdout, true);
} else {
printf("CONFIG_%s\n", sym->name);
}
@@ -440,7 +440,7 @@ 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,
+void conf_write_symbol(struct symbol *sym, enum symbol_type type,
FILE *out, bool write_no)
{
const char *str;
@@ -7,6 +7,7 @@ P(conf_read_simple,int,(const char *name, int));
P(conf_write_defconfig,int,(const char *name));
P(conf_write,int,(const char *name));
P(conf_write_autoconf,int,(void));
+P(conf_write_symbol, void,(struct symbol*, enum symbol_type, FILE*, bool));
P(conf_get_changed,bool,(void));
P(conf_set_changed_callback, void,(void (*fn)(void)));
P(conf_set_message_callback, void,(void (*fn)(const char *fmt, va_list ap)));