The patch adds new error for situation where filenames
are quoted.

Pushed to master.
Martin

contrib/ChangeLog:

        * gcc-changelog/git_commit.py: Add new error for quoted
        filenames.
        * gcc-changelog/test_email.py: Test it.
        * gcc-changelog/test_patches.txt: Test it.
---
 contrib/gcc-changelog/git_commit.py    |  8 ++++++++
 contrib/gcc-changelog/test_email.py    |  4 ++++
 contrib/gcc-changelog/test_patches.txt | 27 ++++++++++++++++++++++++++
 3 files changed, 39 insertions(+)

diff --git a/contrib/gcc-changelog/git_commit.py 
b/contrib/gcc-changelog/git_commit.py
index 01f49874652..f9cb8cbf030 100755
--- a/contrib/gcc-changelog/git_commit.py
+++ b/contrib/gcc-changelog/git_commit.py
@@ -299,6 +299,14 @@ class GitCommit:
                                      'separately from normal commits'))
             return
+ # check for an encoded utf-8 filename
+        hint = 'git config --global core.quotepath false'
+        for modified, _ in self.info.modified_files:
+            if modified.startswith('"') or modified.endswith('"'):
+                self.errors.append(Error('Quoted UTF8 filename, please set: '
+                                         f'"{hint}"', modified))
+                return
+
         all_are_ignored = (len(project_files) + len(ignored_files)
                            == len(self.info.modified_files))
         self.parse_lines(all_are_ignored)
diff --git a/contrib/gcc-changelog/test_email.py 
b/contrib/gcc-changelog/test_email.py
index 7ba2fcf757e..2053531452c 100755
--- a/contrib/gcc-changelog/test_email.py
+++ b/contrib/gcc-changelog/test_email.py
@@ -399,3 +399,7 @@ class TestGccChangelog(unittest.TestCase):
     def test_unicode_chars_in_filename(self):
         email = self.from_patch_glob('0001-Add-horse.patch')
         assert not email.errors
+
+    def test_bad_unicode_chars_in_filename(self):
+        email = self.from_patch_glob('0001-Add-horse2.patch')
+        assert email.errors[0].message.startswith('Quoted UTF8 filename')
diff --git a/contrib/gcc-changelog/test_patches.txt 
b/contrib/gcc-changelog/test_patches.txt
index bc93cce1fa7..ffd13682d5c 100644
--- a/contrib/gcc-changelog/test_patches.txt
+++ b/contrib/gcc-changelog/test_patches.txt
@@ -3371,4 +3371,31 @@ index 00000000000..56c67f58752
 +I'm a horse.
 --
 2.29.2
+=== 0001-Add-horse2.patch ===
+From 2884248d07e4e2c922e137365253e2e521c425b0 Mon Sep 17 00:00:00 2001
+From: Martin Liska <mli...@suse.cz>
+Date: Mon, 21 Dec 2020 10:14:46 +0100
+Subject: [PATCH] Add horse.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ChangeLog:
+
+       * koní�ek.txt: New file.
+---
+ "kon\303\255\304\215ek.txt" | 1 +
+ 1 file changed, 1 insertion(+)
+ create mode 100644 "kon\303\255\304\215ek.txt"
+
+diff --git "a/kon\303\255\304\215ek.txt" "b/kon\303\255\304\215ek.txt"
+new file mode 100644
+index 00000000000..56c67f58752
+--- /dev/null
++++ "b/kon\303\255\304\215ek.txt"
+@@ -0,0 +1 @@
++I'm a horse.
+--
+2.29.2
+
--
2.29.2

Reply via email to