From 85ce673378e7091ce603b033fac213a9d0d1f83a Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 18 Oct 2021 10:44:11 +0200 Subject: [PATCH] gcc-changelog: update error message location contrib/ChangeLog: * gcc-changelog/git_commit.py: Update location of 'bad parentheses wrapping'. * gcc-changelog/test_email.py: Test it. --- contrib/gcc-changelog/git_commit.py | 14 +++++++------- contrib/gcc-changelog/test_email.py | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py index f26dc3b4135..cf29f761964 100755 --- a/contrib/gcc-changelog/git_commit.py +++ b/contrib/gcc-changelog/git_commit.py @@ -217,7 +217,7 @@ class ChangeLogEntry: self.lines = [] self.files = [] self.file_patterns = [] - self.opened_parentheses = 0 + self.parentheses_stack = [] def parse_file_names(self): # Whether the content currently processed is between a star prefix the @@ -551,7 +551,7 @@ class GitCommit: m = star_prefix_regex.match(line) if m: if (len(m.group('spaces')) != 1 and - last_entry.opened_parentheses == 0): + not last_entry.parentheses_stack): msg = 'one space should follow asterisk' self.errors.append(Error(msg, line)) else: @@ -576,13 +576,13 @@ class GitCommit: def process_parentheses(self, last_entry, line): for c in line: if c == '(': - last_entry.opened_parentheses += 1 + last_entry.parentheses_stack.append(line) elif c == ')': - if last_entry.opened_parentheses == 0: + if not last_entry.parentheses_stack: msg = 'bad wrapping of parenthesis' self.errors.append(Error(msg, line)) else: - last_entry.opened_parentheses -= 1 + del last_entry.parentheses_stack[-1] def parse_file_names(self): for entry in self.changelog_entries: @@ -608,9 +608,9 @@ class GitCommit: def check_for_broken_parentheses(self): for entry in self.changelog_entries: - if entry.opened_parentheses != 0: + if entry.parentheses_stack: msg = 'bad parentheses wrapping' - self.errors.append(Error(msg, entry.lines[0])) + self.errors.append(Error(msg, entry.parentheses_stack[-1])) def get_file_changelog_location(self, changelog_file): for file in self.info.modified_files: diff --git a/contrib/gcc-changelog/test_email.py b/contrib/gcc-changelog/test_email.py index dae7c27c707..a4796dbbe94 100755 --- a/contrib/gcc-changelog/test_email.py +++ b/contrib/gcc-changelog/test_email.py @@ -415,6 +415,7 @@ class TestGccChangelog(unittest.TestCase): def test_multiline_bad_parentheses(self): email = self.from_patch_glob('0002-Wrong-macro-changelog.patch') assert email.errors[0].message == 'bad parentheses wrapping' + assert email.errors[0].line == ' * config/i386/i386.md (*fix_trunc_i387_1,' def test_changelog_removal(self): email = self.from_patch_glob('0001-ChangeLog-removal.patch')