diff mbox series

[PUSHED] gcc-changelog: update error message location

Message ID 25c6bde0-8c1a-d65b-6481-a74262d17313@suse.cz
State New
Headers show
Series [PUSHED] gcc-changelog: update error message location | expand

Commit Message

Martin Liška Oct. 18, 2021, 9:06 a.m. UTC
Hello.

The patch improves location information for 'bad parentheses wrapping'.

Pushed to master.
Martin

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 mbox series

Patch

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<mode>_i387_1,'
  
      def test_changelog_removal(self):
          email = self.from_patch_glob('0001-ChangeLog-removal.patch')