Currently kconfigeditor.kconfig.menu.all.All assumes the parser will put all MenuEntrySource elements directly under the parse root. However, they may also be placed under a MenuEntryChoice. There is one instance where this occurs in current linux sources, in drivers/usb/gadget/Kconfig. There are two options to fix this; either push the MenuEntrySource elements up or handle MenuEntryChoice elements specially. Please apply one of the following: Index: kconfigeditor/kconfig/menu/all.py =================================================================== --- kconfigeditor/kconfig/menu/all.py (revision 22704) +++ kconfigeditor/kconfig/menu/all.py (working copy) @@ -2,7 +2,7 @@ import os -from . import MenuEntrySource +from . import MenuEntrySource, MenuEntryChoice from .file import Parser @@ -28,9 +28,13 @@ if not f: f = cache[filename] = self.read(filename) - for i in f: - if isinstance(i, MenuEntrySource): - work.append(i.filename) + def add_files(f): + for i in f: + if isinstance(i, MenuEntrySource): + work.append(i.filename) + elif isinstance(i, MenuEntryChoice): + add_files(i) + add_files(f) files_arch.append(f) --- END --- Index: kconfigeditor/kconfig/menu/file.py =================================================================== --- kconfigeditor/kconfig/menu/file.py (revision 22704) +++ kconfigeditor/kconfig/menu/file.py (working copy) @@ -182,6 +182,7 @@ super(_BlockChoice, self).__init__(parent) self.entry = MenuEntryChoice() parent.entry.append(self.entry) + self._parent = parent _BlockConfigData(self, self.entry) def process_default(self, text, ind): @@ -190,6 +191,10 @@ def process_endchoice(self, text, ind): self.pop() + def process_source(self, text, ind): + # Push source statements up to the parent + self._parent.process_source(text, ind) + class _BlockComment(_BlockObject, _BlockContainerDepends): pass --- END --- -- Ben Hutchings Unix is many things to many people, but it's never been everything to anybody.
Attachment:
signature.asc
Description: This is a digitally signed message part