diff mercurial/templater.py @ 31179:48a8b2e5fe31

templater: port formatnode filter from changeset_templater This slightly reduces the difference between changeset_templater and formatter, and helps extending formatter to support changeset templating. New formatnode() is not a template filter, but a function since a filter cannot access to ui. And it's marked as DEPRECATED since I think it exists only for compatibility reasons.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 25 Feb 2017 16:26:58 +0900
parents 0b8356705de6
children 3725986b151a
line wrap: on
line diff
--- a/mercurial/templater.py	Mon Feb 13 00:05:55 2017 -0800
+++ b/mercurial/templater.py	Sat Feb 25 16:26:58 2017 +0900
@@ -544,6 +544,19 @@
 
     return templatefilters.fill(text, width, initindent, hangindent)
 
+@templatefunc('formatnode(node)')
+def formatnode(context, mapping, args):
+    """Obtain the preferred form of a changeset hash. (DEPRECATED)"""
+    if len(args) != 1:
+        # i18n: "formatnode" is a keyword
+        raise error.ParseError(_("formatnode expects one argument"))
+
+    ui = mapping['ui']
+    node = evalstring(context, mapping, args[0])
+    if ui.debugflag:
+        return node
+    return templatefilters.short(node)
+
 @templatefunc('pad(text, width[, fillchar=\' \'[, left=False]])')
 def pad(context, mapping, args):
     """Pad text with a