Merged revisions 74475 via svnmerge from

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.
........
This commit is contained in:
Gregory P. Smith 2009-08-16 18:58:46 +00:00
parent c3b2ae4adb
commit 01099707db
3 changed files with 13 additions and 2 deletions

View 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)'

View 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)

View File

@ -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.