#16618: Make glob.glob match consistently across strings and bytes

Fixes handling of leading dots.

Patch by Serhiy Storchaka.
This commit is contained in:
Hynek Schlawack 2012-12-27 10:10:11 +01:00
parent 57a1233110
commit e26568f812
3 changed files with 58 additions and 29 deletions

View file

@ -58,8 +58,8 @@ def glob1(dirname, pattern):
names = os.listdir(dirname)
except os.error:
return []
if pattern[0] != '.':
names = [x for x in names if x[0] != '.']
if not _ishidden(pattern):
names = [x for x in names if not _ishidden(x)]
return fnmatch.filter(names, pattern)
def glob0(dirname, basename):
@ -83,3 +83,6 @@ def has_magic(s):
else:
match = magic_check.search(s)
return match is not None
def _ishidden(path):
return path[0] in ('.', b'.'[0])