Message ID | 20200101204152.402906-1-nivedita@alum.mit.edu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | menuconfig: restore prompt dependencies in help text | expand |
On Wed, Jan 01, 2020 at 03:41:52PM -0500, Arvind Sankar wrote: > Commit bcdedcc1afd6 ("menuconfig: print more info for symbol without > prompts") moved some code from get_prompt_str to get_symbol_str so that > dependency information for symbols without prompts could be shown. > > This code would be better copied rather than moved, as the change had > the side-effect of not showing any extra dependencies that the prompt > might have over the symbol. > > Put back a copy of the dependency printing code in get_prompt_str. Umm... Is "visible" really accurate in this case? AFAICS, the entry (and help for it) _is_ visible with EXPERT=n. OTOH, with EXPERT=y and MULTIUSER=n it disappears completely. I'm not familiar with kconfig guts (and not too concerned about that feature of help there, TBH), but it looks like what you are printing there is some mix of dependencies ("visible when") and selectability...
On Wed, Jan 01, 2020 at 09:04:26PM +0000, Al Viro wrote: > On Wed, Jan 01, 2020 at 03:41:52PM -0500, Arvind Sankar wrote: > > Commit bcdedcc1afd6 ("menuconfig: print more info for symbol without > > prompts") moved some code from get_prompt_str to get_symbol_str so that > > dependency information for symbols without prompts could be shown. > > > > This code would be better copied rather than moved, as the change had > > the side-effect of not showing any extra dependencies that the prompt > > might have over the symbol. > > > > Put back a copy of the dependency printing code in get_prompt_str. > > Umm... Is "visible" really accurate in this case? AFAICS, the > entry (and help for it) _is_ visible with EXPERT=n. OTOH, with > EXPERT=y and MULTIUSER=n it disappears completely. > > I'm not familiar with kconfig guts (and not too concerned about that > feature of help there, TBH), but it looks like what you are printing > there is some mix of dependencies ("visible when") and selectability... Perhaps not the most accurate term. For NAMESPACES it has a submenu, so it can't disappear as long as its selected, even if it's not editable any more. A "leaf" level option like MULTIUSER, otoh, does disappear completely (even though it's still selected). But there are also things like CONFIG_VT, which stays visible, even though its not a menu.. I think because there is a visible option that depends on it and immediately follows, which menuconfig shows by indenting. If the order of UNIX98_PTYS and VT_HW_CONSOLE_BINDING is flipped in drivers/tty/Kconfig, then VT disappears when EXPERT=n. Dunno, maybe Editable would be a better word than Visible?
On 1/1/20 2:26 PM, Arvind Sankar wrote: > On Wed, Jan 01, 2020 at 09:04:26PM +0000, Al Viro wrote: >> On Wed, Jan 01, 2020 at 03:41:52PM -0500, Arvind Sankar wrote: >>> Commit bcdedcc1afd6 ("menuconfig: print more info for symbol without >>> prompts") moved some code from get_prompt_str to get_symbol_str so that >>> dependency information for symbols without prompts could be shown. >>> >>> This code would be better copied rather than moved, as the change had >>> the side-effect of not showing any extra dependencies that the prompt >>> might have over the symbol. >>> >>> Put back a copy of the dependency printing code in get_prompt_str. >> >> Umm... Is "visible" really accurate in this case? AFAICS, the >> entry (and help for it) _is_ visible with EXPERT=n. OTOH, with >> EXPERT=y and MULTIUSER=n it disappears completely. >> >> I'm not familiar with kconfig guts (and not too concerned about that >> feature of help there, TBH), but it looks like what you are printing >> there is some mix of dependencies ("visible when") and selectability... > > Perhaps not the most accurate term. For NAMESPACES it has a submenu, so > it can't disappear as long as its selected, even if it's not editable > any more. A "leaf" level option like MULTIUSER, otoh, does disappear > completely (even though it's still selected). > > But there are also things like CONFIG_VT, which stays visible, even > though its not a menu.. I think because there is a visible option that > depends on it and immediately follows, which menuconfig shows by > indenting. If the order of UNIX98_PTYS and VT_HW_CONSOLE_BINDING is > flipped in drivers/tty/Kconfig, then VT disappears when EXPERT=n. > > Dunno, maybe Editable would be a better word than Visible? I would prefer Editable instead of Visible. and the Subject should be more than menuconfig since the patch also "fixes" nconfig, xconfig, and gconfig. Tested-by: Randy Dunlap <rdunlap@infradead.org> Thanks.
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index d9d16469859a..c323ab4ac7c7 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c @@ -706,6 +706,12 @@ static void get_prompt_str(struct gstr *r, struct property *prop, struct jump_key *jump = NULL; str_printf(r, "Prompt: %s\n", prop->text); + if (!expr_is_yes(prop->visible.expr)) { + str_append(r, " Visible if: "); + expr_gstr_print(prop->visible.expr, r); + str_append(r, "\n"); + } + menu = prop->menu->parent; for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) { bool accessible = menu_is_visible(menu);
Commit bcdedcc1afd6 ("menuconfig: print more info for symbol without prompts") moved some code from get_prompt_str to get_symbol_str so that dependency information for symbols without prompts could be shown. This code would be better copied rather than moved, as the change had the side-effect of not showing any extra dependencies that the prompt might have over the symbol. Put back a copy of the dependency printing code in get_prompt_str. The following is an example for NAMESPACES: Before: Symbol: NAMESPACES [=y] Type : bool Prompt: Namespaces support Location: (2) -> General setup Defined at init/Kconfig:1064 Depends on: MULTIUSER [=y] After: Symbol: NAMESPACES [=y] Type : bool Prompt: Namespaces support Visible if: MULTIUSER [=y] && EXPERT [=y] Location: (2) -> General setup Defined at init/Kconfig:1064 Depends on: MULTIUSER [=y] Fixes: bcdedcc1afd6 ("menuconfig: print more info for symbol without prompts") Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> --- scripts/kconfig/menu.c | 6 ++++++ 1 file changed, 6 insertions(+)