[Python-checkins] r76024 - in python/branches/release31-maint: Lib/fnmatch.py Lib/test/test_fnmatch.py Misc/NEWS
gregory.p.smith
python-checkins at python.org
Sun Nov 1 21:36:24 CET 2009
Author: gregory.p.smith
Date: Sun Nov 1 21:36:24 2009
New Revision: 76024
Log:
Merged revisions 74476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r74476 | gregory.p.smith | 2009-08-16 11:58:46 -0700 (Sun, 16 Aug 2009) | 9 lines
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.
........
................
Modified:
python/branches/release31-maint/ (props changed)
python/branches/release31-maint/Lib/fnmatch.py
python/branches/release31-maint/Lib/test/test_fnmatch.py
python/branches/release31-maint/Misc/NEWS
Modified: python/branches/release31-maint/Lib/fnmatch.py
==============================================================================
--- python/branches/release31-maint/Lib/fnmatch.py (original)
+++ python/branches/release31-maint/Lib/fnmatch.py Sun Nov 1 21:36:24 2009
@@ -113,4 +113,4 @@
res = '%s[%s]' % (res, stuff)
else:
res = res + re.escape(c)
- return res + "$"
+ return res + '\Z(?ms)'
Modified: python/branches/release31-maint/Lib/test/test_fnmatch.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_fnmatch.py (original)
+++ python/branches/release31-maint/Lib/test/test_fnmatch.py Sun Nov 1 21:36:24 2009
@@ -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_mix_bytes_str(self):
self.assertRaises(TypeError, fnmatch, 'test', b'*')
self.assertRaises(TypeError, fnmatch, b'test', '*')
@@ -46,6 +53,8 @@
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)
Modified: python/branches/release31-maint/Misc/NEWS
==============================================================================
--- python/branches/release31-maint/Misc/NEWS (original)
+++ python/branches/release31-maint/Misc/NEWS Sun Nov 1 21:36:24 2009
@@ -37,6 +37,8 @@
Library
-------
+- Issue #6665: Fix fnmatch to properly match filenames with newlines in them.
+
- Issue #7246 & Issue #7208: getpass now properly flushes input before
reading from stdin so that existing input does not confuse it and
lead to incorrect entry or an IOError. It also properly flushes it
More information about the Python-checkins
mailing list