@@ -50,13 +50,17 @@ class Annotation(Config):
Parse body of annotations file
"""
def _parse_body(self, data: str):
- # Skip comments
- data = re.sub(r'(?m)^\s*#.*\n?', '', data)
+ for line in data.splitlines():
+ # Replace tabs with spaces, squeeze multiple into singles and
+ # remove leading and trailing spaces
+ line = line.replace('\t', ' ')
+ line = re.sub(r' +', ' ', line)
+ line = line.strip()
- # Convert multiple spaces to single space to simplifly parsing
- data = re.sub(r' *', ' ', data)
+ # Ignore empty lines and comments
+ if not line or line.startswith('#'):
+ continue
- for line in data.splitlines():
# Handle includes (recursively)
m = re.match(r'^include\s+"?([^"]*)"?', line)
if m:
Handle tabs in the annotations file by replacing them with spaces. While at make the parsing more robust by removing leading and trailing whitespaces and ignoring empty lines. Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com> --- debian/scripts/misc/kconfig/annotations.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)