summary refs log tree commit diff
path: root/scripts/kconfig/menu.c
diff options
context:
space:
mode:
authorPetr Vorel <petr.vorel@gmail.com>2018-01-25 10:46:35 +0100
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-01-25 21:53:00 +0900
commit1ccb27143360bd2390a9a970e50709f858b53761 (patch)
treecf5e766bdaca1c1976ad004a87e0d163f19b15da /scripts/kconfig/menu.c
parent312ee68752faaa553499775d2c191ff7a883826f (diff)
downloadlinux-1ccb27143360bd2390a9a970e50709f858b53761.tar.gz
kconfig: make "Selected by:" and "Implied by:" readable
Reverse dependency expressions can get rather unwieldy, especially if
a symbol is selected by more than a handful of other symbols. I.e. it's
possible to have near endless expressions like:
   A && B && !C || D || F && (G || H) || [...]

Chop these expressions into actually readable chunks:
   - A && B && !C
   - D
   - F && (G || H)
   - [...]

I.e. transform the top level OR tokens into newlines and prepend each
line with a minus. This makes the "Selected by:" and "Implied by:" blurb
much easier to read. This is done only if there is more than one top
level OR. "Depends on:" and "Range :" were deliberately left as they are.

Based on idea from Paul Bolle.

Suggested-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts/kconfig/menu.c')
-rw-r--r--scripts/kconfig/menu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index d365fc9513c5..99222855544c 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -828,14 +828,14 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym,
 	get_symbol_props_str(r, sym, P_SELECT, _("  Selects: "));
 	if (sym->rev_dep.expr) {
 		str_append(r, _("  Selected by: "));
-		expr_gstr_print(sym->rev_dep.expr, r);
+		expr_gstr_print_revdep(sym->rev_dep.expr, r);
 		str_append(r, "\n");
 	}
 
 	get_symbol_props_str(r, sym, P_IMPLY, _("  Implies: "));
 	if (sym->implied.expr) {
 		str_append(r, _("  Implied by: "));
-		expr_gstr_print(sym->implied.expr, r);
+		expr_gstr_print_revdep(sym->implied.expr, r);
 		str_append(r, "\n");
 	}