]> granicus.if.org Git - python/commitdiff
Merged revisions 74475 via svnmerge from
authorGregory P. Smith <greg@mad-scientist.com>
Sun, 16 Aug 2009 18:58:46 +0000 (18:58 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Sun, 16 Aug 2009 18:58:46 +0000 (18:58 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74475 | gregory.p.smith | 2009-08-16 11:52:58 -0700 (Sun, 16 Aug 2009) | 2 lines

  Issue 6665: Fix fnmatch to properly match filenames with newlines in them.
........

Lib/fnmatch.py
Lib/test/test_fnmatch.py
Misc/NEWS

index 0397549d4ddf4787a436f91860a97d5e7975f901..30c0a922f229464317b3f6726597d5fe252cf380 100644 (file)
@@ -113,4 +113,4 @@ def translate(pat):
                 res = '%s[%s]' % (res, stuff)
         else:
             res = res + re.escape(c)
-    return res + "$"
+    return res + '\Z(?ms)'
index 2f701caccaac93bfb57feace9d618b940f14cd89..506c67999c5d0656f1bc413c13b198eac0a98fe7 100644 (file)
@@ -32,11 +32,18 @@ class FnmatchTestCase(unittest.TestCase):
         check('a', 'b', 0)
 
         # these test that '\' is handled correctly in character sets;
-        # see SF bug #???
+        # see SF bug #409651
         check('\\', r'[\]')
         check('a', r'[!\]')
         check('\\', r'[!\]', 0)
 
+        # test that filenames with newlines in them are handled correctly.
+        # http://bugs.python.org/issue6665
+        check('foo\nbar', 'foo*')
+        check('foo\nbar\n', 'foo*')
+        check('\nfoo', 'foo*', False)
+        check('\n', '*')
+
     def test_mix_bytes_str(self):
         self.assertRaises(TypeError, fnmatch, 'test', b'*')
         self.assertRaises(TypeError, fnmatch, b'test', '*')
@@ -46,6 +53,8 @@ class FnmatchTestCase(unittest.TestCase):
     def test_bytes(self):
         self.check_match(b'test', b'te*')
         self.check_match(b'test\xff', b'te*\xff')
+        self.check_match(b'foo\nbar', b'foo*')
+
 
 def test_main():
     support.run_unittest(FnmatchTestCase)
index c861b45638aac9627636b353bff0633dc39f1218..423578091829ec6d2b73ee8a8bc4d685673ccec4 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -65,6 +65,8 @@ C-API
 Library
 -------
 
+- Issue #6665: Fix fnmatch to properly match filenames with newlines in them.
+
 - Issue #1135: Add the XView and YView mix-ins to avoid duplicating
   the xview* and yview* methods.