Add some utility methods for parsing filters.
    
        | author | Steve Losh <steve@stevelosh.com> | 
    
        | date | Tue, 24 Nov 2009 19:34:12 -0500 | 
    
    
        | parents | 2a8eea4463c3 | 
    
        | children | 7dec3992e6fc | 
    
        | branches/tags | (none) | 
    
        | files | prompt.py | 
Changes
    
--- a/prompt.py	Thu Nov 19 22:51:34 2009 -0500
+++ b/prompt.py	Tue Nov 24 19:34:12 2009 -0500
@@ -21,6 +21,8 @@
 CACHE_PATH = ".hg/prompt/cache"
 CACHE_TIMEOUT = timedelta(minutes=15)
 
+FILTER_ARG = re.compile(r'\|.+\((.*)\)')
+
 def _cache_remote(repo, kind):
     cache = path.join(repo.root, CACHE_PATH, kind)
     c_tmp = cache + '.temp'
@@ -38,6 +40,24 @@
     return ("%s" + out + "%s") % (g[0][:-1] if g[0] else '',
                                   g[1][1:]  if g[1] else '')    
 
+def _get_filter(name, g):
+    '''Return the filter with the given name, or None if it was not used.'''
+    matching_filters = filter(lambda s: s and s.startswith('|%s' % name), g)
+    if not matching_filters:
+        return None
+    
+    # Later filters will override earlier ones, for now.
+    f = matching_filters[-1]
+    
+    return f
+
+def _get_filter_arg(f):
+    args = FILTER_ARG.match(f).groups()
+    if args:
+        return args[0]
+    else:
+        return None
+
 def prompt(ui, repo, fs='', **opts):
     '''get repository information for use in a shell prompt