[kernel-team] 43/86: Update.

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 c75c7c1eb25881d3319370a041f5cbd0281c3ea5
Author: Bastian Blank <waldi at debian.org>
Date:   Mon Mar 16 22:04:50 2009 +0000

    Update.
    
    svn path=/people/waldi/utils/kconfigeditor2/; revision=13138
---
 utils/kconfigeditor2/bin/process.py                |   1 +
 .../lib/kconfigeditor/kconfig/config.py            | 137 +++++++++++----------
 2 files changed, 76 insertions(+), 62 deletions(-)

diff --git a/utils/kconfigeditor2/bin/process.py b/utils/kconfigeditor2/bin/process.py
index d4694cf..274069e 100755
--- a/utils/kconfigeditor2/bin/process.py
+++ b/utils/kconfigeditor2/bin/process.py
@@ -35,6 +35,7 @@ def main(package, source, config_output, ignore_silent):
             os.rename(filename_tmp, filename)
         except:
             os.unlink(filename_tmp)
+            raise
 
 if __name__ == '__main__':
     try:
diff --git a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
index fcae8b8..67a92f0 100644
--- a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
+++ b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
@@ -11,51 +11,83 @@ class File(dict):
 
         self.read(fd)
 
-    def _dump_file_choice(self, processed, ignored, visible, f):
+    def _write(self, menufiles):
+        visible = self._write_check_visible(menufiles)
+
+        processed = set()
+        ignored = set()
+
+        for file in menufiles:
+            for i in self._write_file(processed, ignored, visible, file):
+                yield i
+
+        unprocessed = set(self) - processed - ignored
+        if unprocessed:
+            yield '##'
+            yield '## file: unknown'
+            yield '##'
+            unprocessed = list(unprocessed)
+            unprocessed.sort()
+            for name in unprocessed:
+                yield str(self.get(name))
+            yield ''
+
+    def _write_file(self, processed, ignored, visible, file):
+        ret = []
+
+        for entry in file:
+            if isinstance(entry, MenuEntryConfig):
+                ret.extend(self._write_entry_config(processed, ignored, visible, entry))
+            elif isinstance(entry, MenuEntryChoice):
+                ret.extend(self._write_entry_choice(processed, ignored, visible, entry))
+
+        if ret:
+            yield '##'
+            yield '## file: %s' % file.filename
+            yield '##'
+            for i in ret:
+                yield i
+            yield ''
+
+    def _write_entry_choice(self, processed, ignored, visible, entry):
         ret = []
         nr = 0
-        for i in f:
-            if isinstance(i, MenuEntryConfig):
-                r = self._dump_file_config(processed, ignored, visible, i)
+
+        for subentry in entry:
+            if isinstance(subentry, MenuEntryConfig):
+                r = list(self._write_entry_config(processed, ignored, visible, subentry))
+                ret.extend(r)
                 if r:
-                    ret.extend(r)
                     nr += 1
-        incomplete = len(f) != nr
+
+        incomplete = len(entry) != nr
+
         if ret:
-            if incomplete:
-                ret.insert(0, "## choice: INCOMPLETE: %s" % f.prompt)
+            if incomplete and 0:
+                yield '## choice: INCOMPLETE: %s' % entry.prompt
             else:
-                ret.insert(0, "## choice: %s" % f.prompt)
-            ret.append('## end choice')
-        return ret
+                yield '## choice: %s' % entry.prompt
+            for i in ret:
+                yield i
+            yield '## end choice'
 
-    def _dump_file_config(self, processed, ignored, visible, i):
-        e = self.get(i.name, None)
-        if e is None:
-            return []
-
-        if i.name in processed:
-            return []
-        if not i.prompt:
-            if i.name in visible:
-                return []
-            if ignored is not None:
-                ignored.add(i.name)
-                return []
-        processed.add(i.name)
-        return e.dump(i)
-
-    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, visible, i))
-            elif isinstance(i, MenuEntryChoice):
-                ret.extend(self._dump_file_choice(processed, ignored, visible, i))
-        if ret:
-            ret[0:0] = ["##", "## file: %s" % f.filename, "##"]
-            ret.append('')
-        return ret
+    def _write_entry_config(self, processed, ignored, visible, entry):
+        value = self.get(entry.name)
+        if value is None:
+            return
+
+        if entry.name in processed:
+            return
+
+        if not entry.prompt:
+            if entry.name in visible:
+                return
+            ignored.add(entry.name)
+            return
+
+        processed.add(entry.name)
+        for i in value.dump(entry):
+            yield i
 
     def _write_check_visible(self, menufiles):
         ret = set()
@@ -72,7 +104,9 @@ class File(dict):
         for menuentry in flatten():
             entry = self.get(menuentry.name)
             if entry and menuentry.prompt:
-                visible.add(menuentry.name)
+                ret.add(menuentry.name)
+
+        return ret
 
     def write(self, fd, menufiles, ignore_silent=False):
         def menufiles_cmp_key(entry):
@@ -85,29 +119,8 @@ class File(dict):
 
         menufiles.sort(key=menufiles_cmp_key)
 
-        visible = self.__write_check_visible(menufiles)
-
-        ret = []
-        processed = set()
-        ignored_sub = ignored = set()
-        if not ignore_silent:
-            ignored_sub = None
-        for f in menufiles:
-            ret.extend(self._dump_file(processed, ignored_sub, visible, f))
-
-        s = set(self.keys())
-        unprocessed = s - processed - ignored
-        if unprocessed:
-            ret.extend(["##", "## file: unknown", "##"])
-            unprocessed = list(unprocessed)
-            unprocessed.sort()
-            for i in unprocessed:
-                e = self.get(i)
-                ret.append(e)
-            ret.append('')
-
-        for i in ret:
-            fd.write(str(i) + "\n")
+        for data in self._write(menufiles):
+            fd.write(data + '\n')
 
     def read(self, f):
         comments = []

-- 
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