mercurial/util.py
changeset 1563 cc2a2e12f4ad
parent 1546 487e256ad545
child 1566 8befbb4e30b2
equal deleted inserted replaced
1562:2f97af0b522c 1563:cc2a2e12f4ad
   103 class Abort(Exception):
   103 class Abort(Exception):
   104     """Raised if a command needs to print an error and exit."""
   104     """Raised if a command needs to print an error and exit."""
   105 
   105 
   106 def always(fn): return True
   106 def always(fn): return True
   107 def never(fn): return False
   107 def never(fn): return False
       
   108 
       
   109 def patkind(name, dflt_pat='glob'):
       
   110     """Split a string into an optional pattern kind prefix and the
       
   111     actual pattern."""
       
   112     for prefix in 're', 'glob', 'path', 'relglob', 'relpath', 'relre':
       
   113         if name.startswith(prefix + ':'): return name.split(':', 1)
       
   114     return dflt_pat, name
   108 
   115 
   109 def globre(pat, head='^', tail='$'):
   116 def globre(pat, head='^', tail='$'):
   110     "convert a glob pattern into a regexp"
   117     "convert a glob pattern into a regexp"
   111     i, n = 0, len(pat)
   118     i, n = 0, len(pat)
   112     res = ''
   119     res = ''
   218 
   225 
   219     todo:
   226     todo:
   220     make head regex a rooted bool
   227     make head regex a rooted bool
   221     """
   228     """
   222 
   229 
   223     def patkind(name, dflt_pat='glob'):
       
   224         for prefix in 're', 'glob', 'path', 'relglob', 'relpath', 'relre':
       
   225             if name.startswith(prefix + ':'): return name.split(':', 1)
       
   226         return dflt_pat, name
       
   227 
       
   228     def contains_glob(name):
   230     def contains_glob(name):
   229         for c in name:
   231         for c in name:
   230             if c in _globchars: return True
   232             if c in _globchars: return True
   231         return False
   233         return False
   232 
   234