summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-05-05 14:41:19 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-05-08 21:58:56 +0200
commitb5c9cb3137e84a17b425ca39df38708da0b4f4a1 (patch)
treed96e88e46bbad391fd8435118262ea38960595f6
parentglossary: Support hierarchical glossary terms (diff)
downloadrtems-central-b5c9cb3137e84a17b425ca39df38708da0b4f4a1.tar.bz2
specview.py: Recursive enabled-by for interfaces
-rwxr-xr-xspecview.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/specview.py b/specview.py
index 460da373..7b6d0d2d 100755
--- a/specview.py
+++ b/specview.py
@@ -189,6 +189,13 @@ _VALIDATION_LEAF = [
_VALIDATION_ROLES = _CHILD_ROLES + ["validation"]
+def _is_enabled(item: Item) -> bool:
+ result = item.enabled
+ for parent in item.parents("interface-placement"):
+ result = result and _is_enabled(parent)
+ return result
+
+
def _validate_tree(item: Item) -> bool:
pre_qualified = is_pre_qualified(item)
item["_pre_qualified"] = pre_qualified
@@ -209,7 +216,7 @@ def _validate_containers(item: Item) -> None:
item.cache.items_by_type["interface/domain"],
item.cache.items_by_type["interface/header-file"]):
for item_3 in item_2.children("interface-placement"):
- if not item_3["_validated"]:
+ if _is_enabled(item_3) and not item_3["_validated"]:
item_2["_validated"] = False
break