[kernel-team] 42/86: Cleanup visible entry handling.

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Mon Dec 21 00:34:57 UTC 2015


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch benh/kconfigeditor2
in repository kernel-team.

commit 63a3b06ba9bf40ddae3d862ebcf4269843ebb633
Author: Bastian Blank <waldi at debian.org>
Date:   Mon Mar 16 21:12:43 2009 +0000

    Cleanup visible entry handling.
    
    svn path=/people/waldi/utils/kconfigeditor2/; revision=13136
---
 .../lib/kconfigeditor/kconfig/config.py            | 48 +++++++++++-----------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
index 612d011..fcae8b8 100644
--- a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
+++ b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
@@ -11,12 +11,12 @@ class File(dict):
 
         self.read(fd)
 
-    def _dump_file_choice(self, processed, ignored, have_prompt, f):
+    def _dump_file_choice(self, processed, ignored, visible, f):
         ret = []
         nr = 0
         for i in f:
             if isinstance(i, MenuEntryConfig):
-                r = self._dump_file_config(processed, ignored, have_prompt, i)
+                r = self._dump_file_config(processed, ignored, visible, i)
                 if r:
                     ret.extend(r)
                     nr += 1
@@ -29,7 +29,7 @@ class File(dict):
             ret.append('## end choice')
         return ret
 
-    def _dump_file_config(self, processed, ignored, have_prompt, i):
+    def _dump_file_config(self, processed, ignored, visible, i):
         e = self.get(i.name, None)
         if e is None:
             return []
@@ -37,7 +37,7 @@ class File(dict):
         if i.name in processed:
             return []
         if not i.prompt:
-            if i.name in have_prompt:
+            if i.name in visible:
                 return []
             if ignored is not None:
                 ignored.add(i.name)
@@ -45,32 +45,34 @@ class File(dict):
         processed.add(i.name)
         return e.dump(i)
 
-    def _dump_file(self, processed, ignored, have_prompt, f):
+    def _dump_file(self, processed, ignored, visible, f):
         ret = []
         for i in f:
             if isinstance(i, MenuEntryConfig):
-                ret.extend(self._dump_file_config(processed, ignored, have_prompt, i))
+                ret.extend(self._dump_file_config(processed, ignored, visible, i))
             elif isinstance(i, MenuEntryChoice):
-                ret.extend(self._dump_file_choice(processed, ignored, have_prompt, i))
+                ret.extend(self._dump_file_choice(processed, ignored, visible, i))
         if ret:
             ret[0:0] = ["##", "## file: %s" % f.filename, "##"]
             ret.append('')
         return ret
 
-    def _dump_prompt_file_config(self, have_prompt, i):
-        e = self.get(i.name, None)
-        if e is not None:
-            if i.prompt:
-                have_prompt.add(i.name)
+    def _write_check_visible(self, menufiles):
+        ret = set()
 
-    def _dump_prompt_file(self, have_prompt, f):
-        for i in f:
-            if isinstance(i, MenuEntryConfig):
-                self._dump_prompt_file_config(have_prompt, i)
-            elif isinstance(i, MenuEntryChoice):
-                for i1 in i:
-                    if isinstance(i1, MenuEntryConfig):
-                        self._dump_prompt_file_config(have_prompt, i1)
+        def flatten():
+            for file in menufiles:
+                for entry in file:
+                    if isinstance(entry, MenuEntryConfig):
+                        yield entry
+                    elif isinstance(entry, MenuEntryChoice):
+                        for i in entry:
+                            yield i
+
+        for menuentry in flatten():
+            entry = self.get(menuentry.name)
+            if entry and menuentry.prompt:
+                visible.add(menuentry.name)
 
     def write(self, fd, menufiles, ignore_silent=False):
         def menufiles_cmp_key(entry):
@@ -83,9 +85,7 @@ class File(dict):
 
         menufiles.sort(key=menufiles_cmp_key)
 
-        have_prompt = set()
-        for f in menufiles:
-            self._dump_prompt_file(have_prompt, f)
+        visible = self.__write_check_visible(menufiles)
 
         ret = []
         processed = set()
@@ -93,7 +93,7 @@ class File(dict):
         if not ignore_silent:
             ignored_sub = None
         for f in menufiles:
-            ret.extend(self._dump_file(processed, ignored_sub, have_prompt, f))
+            ret.extend(self._dump_file(processed, ignored_sub, visible, f))
 
         s = set(self.keys())
         unprocessed = s - processed - ignored

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/kernel-team.git



More information about the Kernel-svn-changes mailing list