mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
Fixed #1491431: distutils.filelist.glob_to_re was broken for some edge cases (detailed in the test
This commit is contained in:
parent
91a3b9e4f0
commit
faa6b121fb
3 changed files with 29 additions and 2 deletions
|
|
@ -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'((?<!\\)(\\\\)*)\.', r'\1[^/]', pattern_re)
|
||||
|
||||
return pattern_re
|
||||
|
||||
# glob_to_re ()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue