mirror of https://github.com/python/cpython
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)
|
res = '%s[%s]' % (res, stuff)
|
||||||
else:
|
else:
|
||||||
res = res + re.escape(c)
|
res = res + re.escape(c)
|
||||||
return res + "$"
|
return res + '\Z(?ms)'
|
||||||
|
|
|
@ -32,11 +32,18 @@ class FnmatchTestCase(unittest.TestCase):
|
||||||
check('a', 'b', 0)
|
check('a', 'b', 0)
|
||||||
|
|
||||||
# these test that '\' is handled correctly in character sets;
|
# these test that '\' is handled correctly in character sets;
|
||||||
# see SF bug #???
|
# see SF bug #409651
|
||||||
check('\\', r'[\]')
|
check('\\', r'[\]')
|
||||||
check('a', r'[!\]')
|
check('a', r'[!\]')
|
||||||
check('\\', r'[!\]', 0)
|
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():
|
def test_main():
|
||||||
test_support.run_unittest(FnmatchTestCase)
|
test_support.run_unittest(FnmatchTestCase)
|
||||||
|
|
|
@ -359,6 +359,8 @@ Core and Builtins
|
||||||
Library
|
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
|
- Issue #1135: Add the XView and YView mix-ins to avoid duplicating
|
||||||
the xview* and yview* methods.
|
the xview* and yview* methods.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue