[kernel] r10819 - in people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig: menu package
Bastian Blank
waldi at alioth.debian.org
Thu Mar 13 08:46:11 UTC 2008
Author: waldi
Date: Thu Mar 13 08:46:09 2008
New Revision: 10819
Log:
* lib/kconfigeditor/kconfig/menu/file.py: Support choice.
* lib/kconfigeditor/kconfig/package/files.py: Dump choice correctly.
Modified:
people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
Modified: people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py (original)
+++ people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py Thu Mar 13 08:46:09 2008
@@ -4,10 +4,16 @@
def __init__(self, filename):
self.filename = filename
+class FileChoice(list):
+ def __init__(self, prompt = None):
+ self.prompt = prompt
+
+ def __repr__(self):
+ return "<%s(%r)>" % (self.__class__.__name__, self.prompt)
+
class FileConfig(object):
- def __init__(self, name):
- self.name = name
- self.prompt = None
+ def __init__(self, name, prompt = None):
+ self.name, self.prompt = name, prompt
def __repr__(self):
return "<%s(%r, %r)>" % (self.__class__.__name__, self.name, self.prompt)
@@ -35,8 +41,8 @@
else:
try:
stack.top().process_line(line)
- except:
- raise Exception("Can't parse: '%s' (%d)" % (line, lineno))
+ except Exception, e:
+ raise Exception("Can't parse: '%s' (%d): %s" % (line, lineno, e))
lineno += 1
return stack.top().process_stop(lineno, 0)
@@ -178,9 +184,9 @@
class _BlockChoice(_BlockObject, _BlockContainerCommon):
def __init__(self, parent):
super(_BlockChoice, self).__init__(parent)
- # TODO
- self.entry = parent.entry
- _BlockConfigData(self, FileConfig(None))
+ self.entry = FileChoice()
+ parent.entry.append(self.entry)
+ _BlockConfigData(self, self.entry)
def process_default(self, text, ind):
_BlockType(self, text, ind)
Modified: people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py (original)
+++ people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py Thu Mar 13 08:46:09 2008
@@ -2,7 +2,7 @@
from debian_linux.config import ConfigCoreHierarchy
-from kconfigeditor.kconfig.menu.file import FileConfig
+from kconfigeditor.kconfig.menu.file import FileChoice, FileConfig
class Files(dict):
def __init__(self, root):
@@ -110,19 +110,36 @@
self.read(fd)
+ def _dump_file_choice(self, processed, ignored, f):
+ ret = []
+ for i in f:
+ if isinstance(i, FileConfig):
+ ret.extend(self._dump_file_config(processed, ignored, i))
+ if ret:
+ ret.insert(0, "## choice: %s" % f.prompt)
+ ret.insert(-1, '## end choice')
+ return ret
+
+ def _dump_file_config(self, processed, ignored, i):
+ ret = []
+ e = self.get(i.name, None)
+ if e is not None:
+ if i.name in processed:
+ pass
+ elif i.prompt:
+ processed.add(i.name)
+ ret.append(e)
+ else:
+ ignored.add(i.name)
+ return ret
+
def _dump_file(self, processed, ignored, f):
ret = []
for i in f:
if isinstance(i, FileConfig):
- e = self.get(i.name, None)
- if e is not None:
- if i.name in processed:
- pass
- elif i.prompt:
- processed.add(i.name)
- ret.append(e)
- else:
- ignored.add(i.name)
+ ret.extend(self._dump_file_config(processed, ignored, i))
+ elif isinstance(i, FileChoice):
+ ret.extend(self._dump_file_choice(processed, ignored, i))
if ret:
ret[0:0] = ["##", "## file: %s" % f.filename, "##"]
ret.append('')
More information about the Kernel-svn-changes
mailing list