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:
parent
c3b2ae4adb
commit
01099707db
|
@ -113,4 +113,4 @@ def translate(pat):
|
|||
res = '%s[%s]' % (res, stuff)
|
||||
else:
|
||||
res = res + re.escape(c)
|
||||
return res + "$"
|
||||
return res + '\Z(?ms)'
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue