mercurial/templater.py
changeset 17383 099c778ceb33
parent 17334 39c01f8e7b39
child 17631 0b241d7a8c62
--- a/mercurial/templater.py	Sat Aug 11 12:45:53 2012 -0500
+++ b/mercurial/templater.py	Fri Aug 17 15:12:01 2012 -0700
@@ -146,7 +146,15 @@
 
 def runfilter(context, mapping, data):
     func, data, filt = data
-    return filt(func(context, mapping, data))
+    try:
+        return filt(func(context, mapping, data))
+    except (ValueError, AttributeError, TypeError):
+        if isinstance(data, tuple):
+            dt = data[1]
+        else:
+            dt = data
+        raise util.Abort(_("template filter '%s' is not compatible with "
+                           "keyword '%s'") % (filt.func_name, dt))
 
 def buildmap(exp, context):
     func, data = compileexp(exp[1], context)