From faa6b121fb34f1c4db36f20b625ece0291396174 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tarek=20Ziad=C3=A9?= Date: Sun, 5 Apr 2009 21:44:08 +0000 Subject: [PATCH] Fixed #1491431: distutils.filelist.glob_to_re was broken for some edge cases (detailed in the test --- Lib/distutils/filelist.py | 5 +++-- Lib/distutils/tests/test_filelist.py | 23 +++++++++++++++++++++++ Misc/NEWS | 3 +++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 Lib/distutils/tests/test_filelist.py diff --git a/Lib/distutils/filelist.py b/Lib/distutils/filelist.py index 51a1d57e13..3ba5720ca9 100644 --- a/Lib/distutils/filelist.py +++ b/Lib/distutils/filelist.py @@ -302,7 +302,7 @@ def findall (dir = os.curdir): return list -def glob_to_re (pattern): +def glob_to_re(pattern): """Translate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are @@ -317,7 +317,8 @@ def glob_to_re (pattern): # character except the special characters. # XXX currently the "special characters" are just slash -- i.e. this is # Unix-only. - pattern_re = re.sub(r'(^|[^\\])\.', r'\1[^/]', pattern_re) + pattern_re = re.sub(r'((?