[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20210319193150.267510-2-alobakin@pm.me>
Date: Fri, 19 Mar 2021 19:32:08 +0000
From: Alexander Lobakin <alobakin@...me>
To: Masahiro Yamada <masahiroy@...nel.org>
Cc: Alexander Lobakin <alobakin@...me>, linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH 1/2] kconfig: fence choices and menuconfigs with comments in .config too
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@...me>
---
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
Powered by blists - more mailing lists