Issue 6665: Fix fnmatch to properly match filenames with newlines in them.
This commit is contained in:
parent
1ce2d5305a
commit
b98d6b2cbc
|
@ -104,4 +104,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_main():
|
||||
test_support.run_unittest(FnmatchTestCase)
|
||||
|
|
Loading…
Reference in New Issue