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

This commit is contained in:
Gregory P. Smith 2009-08-16 18:52:58 +00:00
parent 1ce2d5305a
commit b98d6b2cbc
3 changed files with 11 additions and 2 deletions

View File

@ -104,4 +104,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_main():
test_support.run_unittest(FnmatchTestCase)

View File

@ -359,6 +359,8 @@ Core and Builtins
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.