From b045179973161115c7ea029b2788f5156fc55cda Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Sun, 11 Dec 2022 17:18:12 +0100 Subject: unidiff: use newline='\n' argument In order to support CR on a line, we need to open files with newline='\n' as our line endings supposed to be of UNIX style. contrib/ChangeLog: * check_GNU_style.py: Use newline=\n. * check_GNU_style_lib.py: Simplify. * gcc-changelog/git_commit.py: Fix issues seen Rust patchset. * gcc-changelog/git_email.py: Use newline argument. * gcc-changelog/test_email.py: New test. * gcc-changelog/test_patches.txt: New test. * mklog.py: Use newline argument. --- contrib/gcc-changelog/git_commit.py | 11 ++++++----- contrib/gcc-changelog/git_email.py | 2 +- contrib/gcc-changelog/test_email.py | 6 +++++- contrib/gcc-changelog/test_patches.txt | 26 ++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 7 deletions(-) (limited to 'contrib/gcc-changelog') diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py index aae3416..d90e6c1 100755 --- a/contrib/gcc-changelog/git_commit.py +++ b/contrib/gcc-changelog/git_commit.py @@ -718,11 +718,12 @@ class GitCommit: if not prs: # if all ChangeLog entries have identical PRs # then use them - prs = self.changelog_entries[0].prs - for entry in self.changelog_entries: - if entry.prs != prs: - prs = [] - break + if self.changelog_entries: + prs = self.changelog_entries[0].prs + for entry in self.changelog_entries: + if entry.prs != prs: + prs = [] + break entry = ChangeLogEntry(changelog_location, self.top_level_authors, prs) diff --git a/contrib/gcc-changelog/git_email.py b/contrib/gcc-changelog/git_email.py index 87b419c..2566d41 100755 --- a/contrib/gcc-changelog/git_email.py +++ b/contrib/gcc-changelog/git_email.py @@ -37,7 +37,7 @@ unidiff_supports_renaming = hasattr(PatchedFile(), 'is_rename') class GitEmail(GitCommit): def __init__(self, filename): self.filename = filename - diff = PatchSet.from_filename(filename) + diff = PatchSet.from_filename(filename, newline='\n') date = None author = None subject = '' diff --git a/contrib/gcc-changelog/test_email.py b/contrib/gcc-changelog/test_email.py index d0de88c..b9d0cb4 100755 --- a/contrib/gcc-changelog/test_email.py +++ b/contrib/gcc-changelog/test_email.py @@ -44,7 +44,7 @@ class TestGccChangelog(unittest.TestCase): filename = None patch_lines = [] - with open(os.path.join(script_path, 'test_patches.txt')) as f: + with open(os.path.join(script_path, 'test_patches.txt'), newline='\n') as f: lines = f.read() for line in lines.split('\n'): if line.startswith('==='): @@ -455,3 +455,7 @@ class TestGccChangelog(unittest.TestCase): def test_space_after_tab(self): email = self.from_patch_glob('0001-Use-Value_Range-when-applying-inferred-ranges.patch') assert (email.errors[0].message == 'extra space after tab') + + def test_CR_in_patch(self): + email = self.from_patch_glob('0001-Add-M-character.patch') + assert (email.errors[0].message == 'cannot find a ChangeLog location in message') diff --git a/contrib/gcc-changelog/test_patches.txt b/contrib/gcc-changelog/test_patches.txt index b28de7d..c378c32 100644 --- a/contrib/gcc-changelog/test_patches.txt +++ b/contrib/gcc-changelog/test_patches.txt @@ -3610,3 +3610,29 @@ index 0b9aa3639c5..f279371948a 100644 if (r.intersect (infer.range (x))) -- 2.38.0 + +=== 0001-Add-M-character.patch ==== +From 71ab4c18f279dc0fa0172ffe8cfac5fabcde953d Mon Sep 17 00:00:00 2001 +From: Martin Liska +Date: Fri, 9 Dec 2022 11:55:21 +0100 +Subject: [PATCH] Add ^M character + +--- + demo.txt | 5 +++++ + 1 file changed, 5 insertions(+) + create mode 100644 demo.txt + +diff --git a/demo.txt b/demo.txt +new file mode 100644 +index 0000000..d75da75 +--- /dev/null ++++ b/demo.txt +@@ -0,0 +1,5 @@ ++pub fn main () ++{ ++// { dg-error "Isolated CR" "" { target *-*-* } .+1 } ++ //! doc cr comment ++} +-- +2.38.1 + -- cgit v1.1