# HG changeset patch # User Yuya Nishihara # Date 2015-03-30 14:54:29 # Node ID 6abce80e6cbfaafcbe176778a448d818849c557b # Parent 2f7cb6e6acdd86a6c94ec7682dc065a0c2ae6871 templatefilters: add "upper" and "lower" for case conversion Typically it will be used in patchbomb's flag template, which will be implemented by future patches. diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py --- a/mercurial/templatefilters.py +++ b/mercurial/templatefilters.py @@ -234,6 +234,10 @@ def localdate(text): """:localdate: Date. Converts a date to local date.""" return (util.parsedate(text)[0], util.makedate()[1]) +def lower(text): + """:lower: Any text. Converts the text to lowercase.""" + return encoding.lower(text) + def nonempty(str): """:nonempty: Any text. Returns '(none)' if the string is empty.""" return str or "(none)" @@ -344,6 +348,10 @@ def tabindent(text): """ return indent(text, '\t') +def upper(text): + """:upper: Any text. Converts the text to uppercase.""" + return encoding.upper(text) + def urlescape(text): """:urlescape: Any text. Escapes all "special" characters. For example, "foo bar" becomes "foo%20bar". @@ -387,6 +395,7 @@ filters = { "json": json, "jsonescape": jsonescape, "localdate": localdate, + "lower": lower, "nonempty": nonempty, "obfuscate": obfuscate, "permissions": permissions, @@ -402,6 +411,7 @@ filters = { "strip": strip, "stripdir": stripdir, "tabindent": tabindent, + "upper": upper, "urlescape": urlescape, "user": userfilter, "emailuser": emailuser, diff --git a/tests/test-command-template.t b/tests/test-command-template.t --- a/tests/test-command-template.t +++ b/tests/test-command-template.t @@ -1871,6 +1871,16 @@ Count filter: o 0: children: 1, tags: 0, file_adds: 1, ancestors: 1 +Upper/lower filters: + + $ hg log -r0 --template '{branch|upper}\n' + DEFAULT + $ hg log -r0 --template '{author|lower}\n' + user name + $ hg log -r0 --template '{date|upper}\n' + abort: template filter 'upper' is not compatible with keyword 'date' + [255] + Error on syntax: $ echo 'x = "f' >> t