From 9f3e2d837a8ae68967cb4f9ec3856200af254409 Mon Sep 17 00:00:00 2001 From: Andrea Righi Date: Tue, 28 Mar 2023 12:50:39 +0200 Subject: [PATCH] UBUNTU: [Packaging] annotations: prevent duplicate include lines Includes are always parsed recursively, but when we save them (e.g., when the annotations file is updated) we should always save only the top-level includes, without repeating the recursive ones. Signed-off-by: Andrea Righi --- debian/scripts/misc/kconfig/annotations.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/scripts/misc/kconfig/annotations.py b/debian/scripts/misc/kconfig/annotations.py index a1ad28284310f..dcc133dbbf621 100644 --- a/debian/scripts/misc/kconfig/annotations.py +++ b/debian/scripts/misc/kconfig/annotations.py @@ -61,7 +61,7 @@ class Annotation(Config): """ Parse body of annotations file """ - def _parse_body(self, data: str): + def _parse_body(self, data: str, parent=True): for line in data.splitlines(): # Replace tabs with spaces, squeeze multiple into singles and # remove leading and trailing spaces @@ -85,10 +85,11 @@ def _parse_body(self, data: str): # Handle includes (recursively) m = re.match(r'^include\s+"?([^"]*)"?', line) if m: - self.include.append(m.group(1)) + if parent: + self.include.append(m.group(1)) include_fname = dirname(abspath(self.fname)) + '/' + m.group(1) include_data = self._load(include_fname) - self._parse_body(include_data) + self._parse_body(include_data, parent=False) continue # Handle policy and note lines