431 if kind == 're': |
431 if kind == 're': |
432 return name |
432 return name |
433 elif kind == 'path': |
433 elif kind == 'path': |
434 return '^' + re.escape(name) + '(?:/|$)' |
434 return '^' + re.escape(name) + '(?:/|$)' |
435 elif kind == 'relglob': |
435 elif kind == 'relglob': |
436 return head + globre(name, '(?:|.*/)', tail) |
436 return head + globre(name, '(?:|.*/)', '(?:/|$)') |
437 elif kind == 'relpath': |
437 elif kind == 'relpath': |
438 return head + re.escape(name) + tail |
438 return head + re.escape(name) + tail |
439 elif kind == 'relre': |
439 elif kind == 'relre': |
440 if name.startswith('^'): |
440 if name.startswith('^'): |
441 return name |
441 return name |
477 for kind, name in [patkind(p, dflt_pat) for p in names]: |
477 for kind, name in [patkind(p, dflt_pat) for p in names]: |
478 if kind in ('glob', 'relpath'): |
478 if kind in ('glob', 'relpath'): |
479 name = canonpath(canonroot, cwd, name) |
479 name = canonpath(canonroot, cwd, name) |
480 if name == '': |
480 if name == '': |
481 kind, name = 'glob', '**' |
481 kind, name = 'glob', '**' |
482 if kind in ('glob', 'path', 're'): |
482 elif kind == 'relglob': |
|
483 name = normpath(name) |
|
484 if kind in ('glob', 'path', 're', 'relglob'): |
483 pats.append((kind, name)) |
485 pats.append((kind, name)) |
484 if kind == 'glob': |
486 if kind == 'glob': |
485 root = globprefix(name) |
487 root = globprefix(name) |
486 roots.append(root) |
488 roots.append(root) |
487 elif kind == 'relpath': |
489 elif kind == 'relpath': |
488 files.append((kind, name)) |
490 files.append((kind, name)) |
489 roots.append(name) |
491 roots.append(name) |
|
492 elif kind == 'relglob': |
|
493 roots.append('.') |
490 |
494 |
491 patmatch = matchfn(pats, '$') or always |
495 patmatch = matchfn(pats, '$') or always |
492 filematch = matchfn(files, '(?:/|$)') or always |
496 filematch = matchfn(files, '(?:/|$)') or always |
493 incmatch = always |
497 incmatch = always |
494 if inc: |
498 if inc: |