gcc-changelog: new error for quoted utf8 filenames
authorMartin Liska <mliska@suse.cz>
Mon, 21 Dec 2020 09:35:11 +0000 (10:35 +0100)
committerMartin Liska <mliska@suse.cz>
Mon, 21 Dec 2020 09:35:11 +0000 (10:35 +0100)
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
contrib/gcc-changelog/test_email.py
contrib/gcc-changelog/test_patches.txt

index 01f498746526fa1eb2b30a6ce0ab5cf5a3fe785b..f9cb8cbf0308ed0a01d5ec9be7f2c93fb750e0e4 100755 (executable)
@@ -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)
index 7ba2fcf757eed235cacf0f80ea32d7ccd05cbefa..2053531452c9d0c3fbfce89a9cafbc4efef700ec 100755 (executable)
@@ -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')
index bc93cce1fa7c007245f0deeddb9b04ea86448c29..ffd13682d5ce541f0bc96f82dab0835f1714f8fc 100644 (file)
@@ -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 <mliska@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
+