- pull "kconfig: oldconfig shall not set symbols if it does not need to"

This commit is contained in:
Bernhard Reutner-Fischer 2007-09-29 20:21:38 +00:00
parent c907326465
commit e6382c49a4

View File

@ -64,7 +64,7 @@ static void check_stdin(void)
} }
} }
static void conf_askvalue(struct symbol *sym, const char *def) static int conf_askvalue(struct symbol *sym, const char *def)
{ {
enum symbol_type type = sym_get_type(sym); enum symbol_type type = sym_get_type(sym);
tristate val; tristate val;
@ -79,7 +79,7 @@ static void conf_askvalue(struct symbol *sym, const char *def)
printf("%s\n", def); printf("%s\n", def);
line[0] = '\n'; line[0] = '\n';
line[1] = 0; line[1] = 0;
return; return 0;
} }
switch (input_mode) { switch (input_mode) {
@ -89,23 +89,23 @@ static void conf_askvalue(struct symbol *sym, const char *def)
case set_random: case set_random:
if (sym_has_value(sym)) { if (sym_has_value(sym)) {
printf("%s\n", def); printf("%s\n", def);
return; return 0;
} }
break; break;
case ask_new: case ask_new:
case ask_silent: case ask_silent:
if (sym_has_value(sym)) { if (sym_has_value(sym)) {
printf("%s\n", def); printf("%s\n", def);
return; return 0;
} }
check_stdin(); check_stdin();
case ask_all: case ask_all:
fflush(stdout); fflush(stdout);
fgets(line, 128, stdin); fgets(line, 128, stdin);
return; return 1;
case set_default: case set_default:
printf("%s\n", def); printf("%s\n", def);
return; return 1;
default: default:
break; break;
} }
@ -115,7 +115,7 @@ static void conf_askvalue(struct symbol *sym, const char *def)
case S_HEX: case S_HEX:
case S_STRING: case S_STRING:
printf("%s\n", def); printf("%s\n", def);
return; return 1;
default: default:
; ;
} }
@ -166,6 +166,7 @@ static void conf_askvalue(struct symbol *sym, const char *def)
break; break;
} }
printf("%s", line); printf("%s", line);
return 1;
} }
int conf_string(struct menu *menu) int conf_string(struct menu *menu)
@ -179,7 +180,8 @@ int conf_string(struct menu *menu)
def = sym_get_string_value(sym); def = sym_get_string_value(sym);
if (sym_get_string_value(sym)) if (sym_get_string_value(sym))
printf("[%s] ", def); printf("[%s] ", def);
conf_askvalue(sym, def); if (!conf_askvalue(sym, def))
return 0;
switch (line[0]) { switch (line[0]) {
case '\n': case '\n':
break; break;
@ -236,7 +238,8 @@ static int conf_sym(struct menu *menu)
if (sym->help) if (sym->help)
printf("/?"); printf("/?");
printf("] "); printf("] ");
conf_askvalue(sym, sym_get_string_value(sym)); if (!conf_askvalue(sym, sym_get_string_value(sym)))
return 0;
strip(line); strip(line);
switch (line[0]) { switch (line[0]) {