diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/kconfig/confdata.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index f349bdcffa98..d1bab0f42d10 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c | |||
@@ -440,12 +440,11 @@ static void conf_write_string(bool headerfile, const char *name, | |||
440 | fputs("\"\n", out); | 440 | fputs("\"\n", out); |
441 | } | 441 | } |
442 | 442 | ||
443 | static void conf_write_symbol(struct symbol *sym, enum symbol_type type, | 443 | static void conf_write_symbol(struct symbol *sym, FILE *out, bool write_no) |
444 | FILE *out, bool write_no) | ||
445 | { | 444 | { |
446 | const char *str; | 445 | const char *str; |
447 | 446 | ||
448 | switch (type) { | 447 | switch (sym->type) { |
449 | case S_BOOLEAN: | 448 | case S_BOOLEAN: |
450 | case S_TRISTATE: | 449 | case S_TRISTATE: |
451 | switch (sym_get_tristate_value(sym)) { | 450 | switch (sym_get_tristate_value(sym)) { |
@@ -532,7 +531,7 @@ int conf_write_defconfig(const char *filename) | |||
532 | goto next_menu; | 531 | goto next_menu; |
533 | } | 532 | } |
534 | } | 533 | } |
535 | conf_write_symbol(sym, sym->type, out, true); | 534 | conf_write_symbol(sym, out, true); |
536 | } | 535 | } |
537 | next_menu: | 536 | next_menu: |
538 | if (menu->list != NULL) { | 537 | if (menu->list != NULL) { |
@@ -561,7 +560,6 @@ int conf_write(const char *name) | |||
561 | const char *basename; | 560 | const char *basename; |
562 | const char *str; | 561 | const char *str; |
563 | char dirname[PATH_MAX+1], tmpname[PATH_MAX+1], newname[PATH_MAX+1]; | 562 | char dirname[PATH_MAX+1], tmpname[PATH_MAX+1], newname[PATH_MAX+1]; |
564 | enum symbol_type type; | ||
565 | time_t now; | 563 | time_t now; |
566 | int use_timestamp = 1; | 564 | int use_timestamp = 1; |
567 | char *env; | 565 | char *env; |
@@ -633,14 +631,8 @@ int conf_write(const char *name) | |||
633 | if (!(sym->flags & SYMBOL_WRITE)) | 631 | if (!(sym->flags & SYMBOL_WRITE)) |
634 | goto next; | 632 | goto next; |
635 | sym->flags &= ~SYMBOL_WRITE; | 633 | sym->flags &= ~SYMBOL_WRITE; |
636 | type = sym->type; | ||
637 | if (type == S_TRISTATE) { | ||
638 | sym_calc_value(modules_sym); | ||
639 | if (modules_sym->curr.tri == no) | ||
640 | type = S_BOOLEAN; | ||
641 | } | ||
642 | /* Write config symbol to file */ | 634 | /* Write config symbol to file */ |
643 | conf_write_symbol(sym, type, out, true); | 635 | conf_write_symbol(sym, out, true); |
644 | } | 636 | } |
645 | 637 | ||
646 | next: | 638 | next: |
@@ -842,7 +834,7 @@ int conf_write_autoconf(void) | |||
842 | continue; | 834 | continue; |
843 | 835 | ||
844 | /* write symbol to config file */ | 836 | /* write symbol to config file */ |
845 | conf_write_symbol(sym, sym->type, out, false); | 837 | conf_write_symbol(sym, out, false); |
846 | 838 | ||
847 | /* update autoconf and tristate files */ | 839 | /* update autoconf and tristate files */ |
848 | switch (sym->type) { | 840 | switch (sym->type) { |