Prompt shown even when expected to be disable.
tejlmand opened this issue · 0 comments
Problem description
When a symbol is double defined but with different prompts, where the active prompt is depending on a common setting both prompts may show.
For example to indicate to users that a given setting is EXPERIMENTAL
under some circumstances, one prompt is shown when FOO
is enabled also, and the other prompt is shown when FOO
is disabled.
This happens when configs right below the second symbol is guarded (depends on
) with an if
.
Code that reproduces this:
config FOO
bool "FOO"
default n
bool
config BAR
bool "bar" if !FOO
config BAR
bool "bar [EXPERIMENTAL]" if FOO
if BAR
config BAZ
bool "Baz is here"
endif
Unexpected, both prompts are now shown:
Expected behavior
Only a sing prompt should be shown when FOO=n
and BAR=y
Workaround
Add a DUMMY
config between the last config
and the if
, like this:
config FOO
bool "FOO"
config BAR
bool "bar" if !FOO
config BAR
bool "bar [EXPERIMENTAL]" if FOO
config DUMMY
bool
if BAR
config BAZ
bool "Baz is here"
endif
Cons on the workaround
BAZ
setting is no longer indented as it is no longer seen as a submenu to BAR
.
Additional info
This code is believed to be responsible for the observed behavior:
Lines 1504 to 1513 in 061e71f