summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Palard <julien@palard.fr>2019-05-09 16:22:15 +0200
committerGitHub <noreply@github.com>2019-05-09 16:22:15 +0200
commitafd1e6d2f0f5aaf4030d13342809ec0915dedf81 (patch)
tree832da190993468bc973995f96ca60d580a08069c
parent88db8bd0648588c67eeab16d0bc72ec5c206e3ad (diff)
downloadcpython-git-afd1e6d2f0f5aaf4030d13342809ec0915dedf81.tar.gz
bpo-36239: Skip comments in gettext infos (GH-12255)
-rw-r--r--Lib/gettext.py3
-rw-r--r--Lib/test/test_gettext.py13
-rw-r--r--Misc/NEWS.d/next/Library/2019-03-09-23-51-27.bpo-36239.BHJ3Ln.rst1
3 files changed, 17 insertions, 0 deletions
diff --git a/Lib/gettext.py b/Lib/gettext.py
index 72a313a085..b98f501884 100644
--- a/Lib/gettext.py
+++ b/Lib/gettext.py
@@ -417,6 +417,9 @@ class GNUTranslations(NullTranslations):
item = b_item.decode().strip()
if not item:
continue
+ # Skip over comment lines:
+ if item.startswith('#-#-#-#-#') and item.endswith('#-#-#-#-#'):
+ continue
k = v = None
if ':' in item:
k, v = item.split(':', 1)
diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py
index 8c0250eea1..9d1a96b8b0 100644
--- a/Lib/test/test_gettext.py
+++ b/Lib/test/test_gettext.py
@@ -684,6 +684,19 @@ class GNUTranslationParsingTest(GettextBaseTest):
# If this runs cleanly, the bug is fixed.
t = gettext.GNUTranslations(fp)
+ def test_ignore_comments_in_headers_issue36239(self):
+ """Checks that comments like:
+
+ #-#-#-#-# messages.po (EdX Studio) #-#-#-#-#
+
+ are ignored.
+ """
+ with open(MOFILE, 'wb') as fp:
+ fp.write(base64.decodebytes(GNU_MO_DATA_ISSUE_17898))
+ with open(MOFILE, 'rb') as fp:
+ t = gettext.GNUTranslations(fp)
+ self.assertEqual(t.info()["plural-forms"], "nplurals=2; plural=(n != 1);")
+
class UnicodeTranslationsTest(GettextBaseTest):
def setUp(self):
diff --git a/Misc/NEWS.d/next/Library/2019-03-09-23-51-27.bpo-36239.BHJ3Ln.rst b/Misc/NEWS.d/next/Library/2019-03-09-23-51-27.bpo-36239.BHJ3Ln.rst
new file mode 100644
index 0000000000..3a74202915
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-03-09-23-51-27.bpo-36239.BHJ3Ln.rst
@@ -0,0 +1 @@
+Parsing .mo files now ignores comments starting and ending with #-#-#-#-#.