summaryrefslogtreecommitdiff
path: root/kconfiglib.py
diff options
context:
space:
mode:
Diffstat (limited to 'kconfiglib.py')
-rw-r--r--kconfiglib.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/kconfiglib.py b/kconfiglib.py
index cbb7e5e..f27e93a 100644
--- a/kconfiglib.py
+++ b/kconfiglib.py
@@ -3272,8 +3272,13 @@ def _get_visibility(sc):
vis = sc._config._eval_max(vis, cond_expr)
if isinstance(sc, Symbol) and sc._is_choice_sym:
- if sc._type == TRISTATE and vis == "m" and \
- sc._parent.get_mode() == "y":
+ if sc._parent._type == TRISTATE and sc._type != TRISTATE and \
+ sc._parent.get_mode() != "y":
+ # Non-tristate choice symbols in tristate choices depend on the
+ # choice being in mode "y"
+ vis = "n"
+ elif sc._type == TRISTATE and vis == "m" and \
+ sc._parent.get_mode() == "y":
# Choice symbols with visibility "m" are not visible if the
# choice has mode "y"
vis = "n"