aboutsummaryrefslogtreecommitdiff
path: root/lib/glob.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/glob.py')
-rw-r--r--lib/glob.py66
1 files changed, 33 insertions, 33 deletions
diff --git a/lib/glob.py b/lib/glob.py
index b711094..8a70f0e 100644
--- a/lib/glob.py
+++ b/lib/glob.py
@@ -5,40 +5,40 @@ import path
import fnmatch
def glob(pathname):
- if not has_magic(pathname): return [pathname]
- dirname, basename = path.split(pathname)
- if dirname[-1:] = '/' and dirname <> '/':
- dirname = dirname[:-1]
- if has_magic(dirname):
- list = glob(dirname)
- else:
- list = [dirname]
- if not has_magic(basename):
- result = []
- for dirname in list:
- if basename or path.isdir(dirname):
- name = path.cat(dirname, basename)
- if path.exists(name):
- result.append(name)
- else:
- result = []
- for dirname in list:
- sublist = glob1(dirname, basename)
- for name in sublist:
- result.append(path.cat(dirname, name))
- return result
+ if not has_magic(pathname): return [pathname]
+ dirname, basename = path.split(pathname)
+ if dirname[-1:] = '/' and dirname <> '/':
+ dirname = dirname[:-1]
+ if has_magic(dirname):
+ list = glob(dirname)
+ else:
+ list = [dirname]
+ if not has_magic(basename):
+ result = []
+ for dirname in list:
+ if basename or path.isdir(dirname):
+ name = path.cat(dirname, basename)
+ if path.exists(name):
+ result.append(name)
+ else:
+ result = []
+ for dirname in list:
+ sublist = glob1(dirname, basename)
+ for name in sublist:
+ result.append(path.cat(dirname, name))
+ return result
def glob1(dirname, pattern):
- if not dirname: dirname = '.'
- try:
- names = posix.listdir(dirname)
- except posix.error:
- return []
- result = []
- for name in names:
- if name[0] <> '.' or pattern[0] = '.':
- if fnmatch.fnmatch(name, pattern): result.append(name)
- return result
+ if not dirname: dirname = '.'
+ try:
+ names = posix.listdir(dirname)
+ except posix.error:
+ return []
+ result = []
+ for name in names:
+ if name[0] <> '.' or pattern[0] = '.':
+ if fnmatch.fnmatch(name, pattern): result.append(name)
+ return result
def has_magic(s):
- return '*' in s or '?' in s or '[' in s
+ return '*' in s or '?' in s or '[' in s