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.
........
diff --git a/Lib/fnmatch.py b/Lib/fnmatch.py
index 3bf2463..4c149eb 100644
--- a/Lib/fnmatch.py
+++ b/Lib/fnmatch.py
@@ -104,4 +104,4 @@
res = '%s[%s]' % (res, stuff)
else:
res = res + re.escape(c)
- return res + "$"
+ return res + '\Z(?ms)'
diff --git a/Lib/test/test_fnmatch.py b/Lib/test/test_fnmatch.py
index 9abcbd6..b1dd6f8 100644
--- a/Lib/test/test_fnmatch.py
+++ b/Lib/test/test_fnmatch.py
@@ -32,11 +32,18 @@
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)
diff --git a/Misc/NEWS b/Misc/NEWS
index 0b2bd7d..23a0e4c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@
Library
-------
+- Issue #6665: Fix fnmatch to properly match filenames with newlines in them.
+
- Issue #1008086: Fixed socket.inet_aton() to always return 4 bytes even on
LP64 platforms (most 64-bit Linux, bsd, unix systems).