accept <case> and [cond] in ChangeLog

Only '(' and ':' currently terminate file lists in ChangeLog entries
in the ChangeLog parser.  This rules out such legitimate entries as:

* filename <CASE>:
* filename [COND]:

This patch extends the ChangeLog parser to recognize these forms.

for  contrib/ChangeLog

	* gcc-changelog/git_commit.py: Support CASE and COND.
	* gcc-changelog/test_patches.txt: Add test.
	* gcc-changelog/test_email.py: Add test.

Co-Authored-By: Martin Liska <mliska@suse.cz>
This commit is contained in:
Alexandre Oliva 2020-07-07 09:02:01 +02:00 committed by Martin Liska
parent c50502ca4e
commit a759bfc7cf
No known key found for this signature in database
GPG Key ID: 4DC182DC0FA73785
3 changed files with 47 additions and 8 deletions

View File

@ -154,6 +154,7 @@ changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?')
pr_regex = re.compile(r'\tPR (?P<component>[a-z+-]+\/)?([0-9]+)$') pr_regex = re.compile(r'\tPR (?P<component>[a-z+-]+\/)?([0-9]+)$')
dr_regex = re.compile(r'\tDR ([0-9]+)$') dr_regex = re.compile(r'\tDR ([0-9]+)$')
star_prefix_regex = re.compile(r'\t\*(?P<spaces>\ *)(?P<content>.*)') star_prefix_regex = re.compile(r'\t\*(?P<spaces>\ *)(?P<content>.*)')
end_of_location_regex = re.compile(r'[\[<(:]')
LINE_LIMIT = 100 LINE_LIMIT = 100
TAB_WIDTH = 8 TAB_WIDTH = 8
@ -204,14 +205,13 @@ class ChangeLogEntry:
line = m.group('content') line = m.group('content')
if in_location: if in_location:
# Strip everything that is not a filename in "line": entities # Strip everything that is not a filename in "line":
# "(NAME)", entry text (the colon, if present, and anything # entities "(NAME)", cases "<PATTERN>", conditions
# that follows it). # "[COND]", entry text (the colon, if present, and
if '(' in line: # anything that follows it).
line = line[:line.index('(')] m = end_of_location_regex.search(line)
in_location = False if m:
if ':' in line: line = line[:m.start()]
line = line[:line.index(':')]
in_location = False in_location = False
# At this point, all that's left is a list of filenames # At this point, all that's left is a list of filenames

View File

@ -361,3 +361,7 @@ class TestGccChangelog(unittest.TestCase):
assert '\tBackported from master:' in entry assert '\tBackported from master:' in entry
assert '\t2020-06-11 Martin Liska <mliska@suse.cz>' in entry assert '\t2020-06-11 Martin Liska <mliska@suse.cz>' in entry
assert '\t\t Jakub Jelinek <jakub@redhat.com>' in entry assert '\t\t Jakub Jelinek <jakub@redhat.com>' in entry
def test_square_and_lt_gt(self):
email = self.from_patch_glob('0001-Check-for-more-missing')
assert not email.errors

View File

@ -3160,3 +3160,38 @@ index 823eb539993..4ec22162c12 100644
-- --
2.27.0 2.27.0
=== 0001-Check-for-more-missing-math-decls-on-vxworks.patch ===
From 0edfc1fd22405ee8e946101e44cd8edc0ee12047 Mon Sep 17 00:00:00 2001
From: Douglas B Rupp <douglas.b.rupp@gmail.com>
Date: Sun, 31 May 2020 13:25:28 -0700
Subject: [PATCH] Check for more missing math decls on vxworks.
Use the GLIBCXX_CHECK_MATH_DECL macro to check for the full list of
vxworks math decls.
for libstdc++-v3/ChangeLog:
* crossconfig.m4 <*-vxworks>: Check for more math decls.
* configure [FAKEPATCH]: Rebuild.
---
libstdc++-v3/configure | 255 ++++++++++++++++++++++++++++++++++++++++++++
libstdc++-v3/crossconfig.m4 | 3 +-
2 files changed, 257 insertions(+), 1 deletion(-)
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index b5beb45..4ef678e 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -1 +1,2 @@
+
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
index fe18288..313f84d 100644
--- a/libstdc++-v3/crossconfig.m4
+++ b/libstdc++-v3/crossconfig.m4
@@ -1 +1,2 @@
+
--
2.7.4