--- a/mercurial/templater.py Sun Feb 14 12:48:14 2016 +0900
+++ b/mercurial/templater.py Sun Feb 14 13:05:09 2016 +0900
@@ -398,7 +398,9 @@
# i18n: "pad" is a keyword
raise error.ParseError(_("pad() expects two to four arguments"))
- width = int(args[1][1])
+ width = evalinteger(context, mapping, args[1],
+ # i18n: "pad" is a keyword
+ _("pad() expects an integer width"))
text = stringify(args[0][0](context, mapping, args[0][1]))
--- a/tests/test-command-template.t Sun Feb 14 12:48:14 2016 +0900
+++ b/tests/test-command-template.t Sun Feb 14 13:05:09 2016 +0900
@@ -3244,6 +3244,14 @@
$ hg log -r 0 -T '{pad(r"\{rev}", 10)} {author|user}\n'
\{rev} test
+Test width argument passed to pad function
+
+ $ hg log -r 0 -T '{pad(rev, "1{"0"}")} {author|user}\n'
+ 0 test
+ $ hg log -r 0 -T '{pad(rev, "not an int")}\n'
+ hg: parse error: pad() expects an integer width
+ [255]
+
Test ifcontains function
$ hg log --template '{rev} {ifcontains(rev, "2 two 0", "is in the string", "is not")}\n'