[kernel] r13138 - in people/waldi/utils/kconfigeditor2: bin lib/kconfigeditor/kconfig
Bastian Blank
waldi at alioth.debian.org
Mon Mar 16 22:04:52 UTC 2009
Author: waldi
Date: Mon Mar 16 22:04:50 2009
New Revision: 13138
Log:
Update.
Modified:
people/waldi/utils/kconfigeditor2/bin/process.py
people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
Modified: people/waldi/utils/kconfigeditor2/bin/process.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/bin/process.py (original)
+++ people/waldi/utils/kconfigeditor2/bin/process.py Mon Mar 16 22:04:50 2009
@@ -35,6 +35,7 @@
os.rename(filename_tmp, filename)
except:
os.unlink(filename_tmp)
+ raise
if __name__ == '__main__':
try:
Modified: people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py (original)
+++ people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/config.py Mon Mar 16 22:04:50 2009
@@ -11,51 +11,83 @@
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
- if ret:
- if incomplete:
- ret.insert(0, "## choice: INCOMPLETE: %s" % f.prompt)
- else:
- ret.insert(0, "## choice: %s" % f.prompt)
- ret.append('## end choice')
- return ret
- 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)
+ incomplete = len(entry) != nr
- 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
+ if incomplete and 0:
+ yield '## choice: INCOMPLETE: %s' % entry.prompt
+ else:
+ yield '## choice: %s' % entry.prompt
+ for i in ret:
+ yield i
+ yield '## end choice'
+
+ 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 @@
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 @@
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 = []
More information about the Kernel-svn-changes
mailing list