[kernel] r10863 - people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package
Bastian Blank
waldi at alioth.debian.org
Fri Mar 14 19:47:01 UTC 2008
Author: waldi
Date: Fri Mar 14 19:47:00 2008
New Revision: 10863
Log:
lib/kconfigeditor/kconfig/package/files.py: Support per-option comments.
Modified:
people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
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 Fri Mar 14 19:47:00 2008
@@ -134,7 +134,7 @@
ignored.add(i.name)
return []
processed.add(i.name)
- return [e]
+ return e.dump()
def _dump_file(self, processed, ignored, have_prompt, f):
ret = []
@@ -206,46 +206,68 @@
fd.write(str(i) + "\n")
def read(self, f):
+ comments = []
+
for line in iter(f.readlines()):
line = line.strip()
+
if line.startswith("CONFIG_"):
i = line.find('=')
option = line[7:i]
value = line[i+1:]
if value in ('y', 'm', 'n'):
- entry = FileEntryTristate(option, value)
+ entry = FileEntryTristate(option, value, comments)
else:
- entry = FileEntryString(option, value)
+ entry = FileEntryString(option, value, comments)
self[option] = entry
+ comments = []
+
elif line.startswith("# CONFIG_"):
option = line[9:-11]
- self[option] = FileEntryTristate(option)
+ self[option] = FileEntryTristate(option, 'n', comments)
+ comments = []
+
+ elif line.startswith("#. "):
+ comments.append(line[3:])
+
elif line.startswith("#") or not line:
pass
+
else:
raise RuntimeError, "Can't recognize %s" % line
+class FileEntry(object):
+ __slots__ = "name", "comments"
+
+ def __init__(self, name, comments):
+ self.name, self.comments = name, comments
+
+ def dump(self):
+ ret = ["#. %s" % i for i in self.comments]
+ ret.append(str(self))
+ return ret
+
# TODO
-class FileEntryString(object):
- __slots__ = "name", "value"
+class FileEntryString(FileEntry):
+ __slots__ = "value"
- def __init__(self, name, value):
- self.name = name
+ def __init__(self, name, value, comments):
+ super(FileEntryString, self).__init__(name, comments)
self.value = value
def __str__(self):
return "CONFIG_%s=%s" % (self.name, self.value)
# TODO
-class FileEntryTristate(object):
- __slots__ = "name", "value"
+class FileEntryTristate(FileEntry):
+ __slots__ = "name", "value", "comments"
VALUE_NO = 0
VALUE_YES = 1
VALUE_MOD = 2
- def __init__(self, name, value = None):
- self.name = name
+ def __init__(self, name, value, comments):
+ super(FileEntryTristate, self).__init__(name, comments)
if value == 'n' or value is None:
self.value = self.VALUE_NO
elif value == 'y':
More information about the Kernel-svn-changes
mailing list