Comment blocks are now generated in .config only for menus. Provide them for choices and menuconfigs too to greatly improve dotconfig readability. Choices before: CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y Choices after: CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y Menuconfigs before: CONFIG_RESET_CONTROLLER=y Menuconfigs after: CONFIG_RESET_CONTROLLER=y Signed-off-by: Alexander Lobakin <alobakin@xxxxx> --- scripts/kconfig/confdata.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index 2568dbe16ed6..e4f0a21fd469 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -869,17 +869,20 @@ int conf_write(const char *name) menu = rootmenu.list; while (menu) { sym = menu->sym; - if (!sym) { - if (!menu_is_visible(menu)) - goto next; + + if ((!sym || (sym->flags & SYMBOL_CHOICE) || + (menu->prompt && menu->prompt->type == P_MENU)) && + menu_is_visible(menu)) { str = menu_get_prompt(menu); fprintf(out, "\n" "#\n" "# %s\n" "#\n", str); need_newline = false; - } else if (!(sym->flags & SYMBOL_CHOICE) && - !(sym->flags & SYMBOL_WRITTEN)) { + } + + if (sym && !(sym->flags & SYMBOL_CHOICE) && + !(sym->flags & SYMBOL_WRITTEN)) { sym_calc_value(sym); if (!(sym->flags & SYMBOL_WRITE)) goto next; @@ -896,11 +899,11 @@ int conf_write(const char *name) menu = menu->list; continue; } - if (menu->next) - menu = menu->next; - else while ((menu = menu->parent)) { - if (!menu->sym && menu_is_visible(menu) && - menu != &rootmenu) { + + do { + if (((menu->sym && menu->sym->flags & SYMBOL_CHOICE) || + (menu->prompt && menu->prompt->type == P_MENU)) && + menu_is_visible(menu) && menu != &rootmenu) { str = menu_get_prompt(menu); fprintf(out, "# end of %s\n", str); need_newline = true; @@ -909,7 +912,7 @@ int conf_write(const char *name) menu = menu->next; break; } - } + } while ((menu = menu->parent)); } fclose(out); -- 2.31.0