Mercurial > hg-stable
changeset 31525:3725986b151a
templater: reject bad fillchar argument passed to pad()
Otherwise TypeError would be raised.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 18 Mar 2017 20:38:44 +0900 |
parents | 43d6ef658874 |
children | 6f150bb19317 |
files | mercurial/templater.py tests/test-command-template.t |
diffstat | 2 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Sat Mar 18 20:11:15 2017 +0900 +++ b/mercurial/templater.py Sat Mar 18 20:38:44 2017 +0900 @@ -575,6 +575,9 @@ fillchar = ' ' if len(args) > 2: fillchar = evalstring(context, mapping, args[2]) + if len(fillchar) != 1: + # i18n: "pad" is a keyword + raise error.ParseError(_("pad() expects a single fill character")) if len(args) > 3: left = evalboolean(context, mapping, args[3])
--- a/tests/test-command-template.t Sat Mar 18 20:11:15 2017 +0900 +++ b/tests/test-command-template.t Sat Mar 18 20:38:44 2017 +0900 @@ -3521,6 +3521,15 @@ hg: parse error: pad() expects an integer width [255] +Test invalid fillchar passed to pad function + + $ hg log -r 0 -T '{pad(rev, 10, "")}\n' + hg: parse error: pad() expects a single fill character + [255] + $ hg log -r 0 -T '{pad(rev, 10, "--")}\n' + hg: parse error: pad() expects a single fill character + [255] + Test boolean argument passed to pad function no crash