[kernel-team] 35/86: lib/kconfigeditor/kconfig/package/files.py: Only accept option with prompt if defined more than once.
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Mon Dec 21 00:34:56 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 f12382f75043e4d155fd91537253e363c8b78edd
Author: Bastian Blank <waldi at debian.org>
Date: Fri Mar 14 13:07:55 2008 +0000
lib/kconfigeditor/kconfig/package/files.py:
Only accept option with prompt if defined more than once.
svn path=/people/waldi/utils/kconfigeditor2/; revision=10846
---
.../lib/kconfigeditor/kconfig/package/files.py | 54 +++++++++++++++-------
1 file changed, 38 insertions(+), 16 deletions(-)
diff --git a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
index 59c84c2..aa4e377 100644
--- a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
+++ b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
@@ -110,41 +110,59 @@ class File(dict):
self.read(fd)
- def _dump_file_choice(self, processed, ignored, f):
+ def _dump_file_choice(self, processed, ignored, have_prompt, f):
ret = []
for i in f:
if isinstance(i, FileConfig):
- ret.extend(self._dump_file_config(processed, ignored, i))
+ ret.extend(self._dump_file_config(processed, ignored, have_prompt, i))
if ret:
ret.insert(0, "## choice: %s" % f.prompt)
ret.append('## end choice')
return ret
- def _dump_file_config(self, processed, ignored, i):
- ret = []
+ def _dump_file_config(self, processed, ignored, have_prompt, i):
e = self.get(i.name, None)
- if e is not None:
- if i.name in processed:
- pass
- elif not i.prompt and ignored is not None:
+ if e is None:
+ return []
+
+ if i.name in processed:
+ return []
+ if not i.prompt:
+ if i.name in have_prompt:
+ return []
+ if ignored is not None:
ignored.add(i.name)
- else:
- processed.add(i.name)
- ret.append(e)
- return ret
+ return []
+ processed.add(i.name)
+ return [e]
- def _dump_file(self, processed, ignored, f):
+ def _dump_file(self, processed, ignored, have_prompt, f):
ret = []
for i in f:
if isinstance(i, FileConfig):
- ret.extend(self._dump_file_config(processed, ignored, i))
+ ret.extend(self._dump_file_config(processed, ignored, have_prompt, i))
elif isinstance(i, FileChoice):
- ret.extend(self._dump_file_choice(processed, ignored, i))
+ ret.extend(self._dump_file_choice(processed, ignored, have_prompt, 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 _dump_prompt_file(self, have_prompt, f):
+ for i in f:
+ if isinstance(i, FileConfig):
+ self._dump_prompt_file_config(have_prompt, i)
+ elif isinstance(i, FileChoice):
+ for i1 in i:
+ if isinstance(i1, FileConfig):
+ self._dump_prompt_file_config(have_prompt, i1)
+
def dump(self, root, menufiles, ignore_silent = False):
filename = os.path.join(root, self.filename)
if not os.path.exists(os.path.dirname(filename)):
@@ -161,13 +179,17 @@ class File(dict):
menufiles.sort(key = menufiles_cmp_key)
+ have_prompt = set()
+ for f in menufiles:
+ self._dump_prompt_file(have_prompt, f)
+
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, f))
+ ret.extend(self._dump_file(processed, ignored_sub, have_prompt, 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