Mercurial > hg
changeset 24886:10a13da8840d stable
templater: fail more gracefully for blank strings to word
author | Ryan McElroy <rmcelroy@fb.com> |
---|---|
date | Thu, 30 Apr 2015 12:33:36 -0700 |
parents | eea3977e6fca |
children | ab9390165429 |
files | mercurial/templater.py tests/test-command-template.t |
diffstat | 2 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Wed Apr 29 21:14:59 2015 -0400 +++ b/mercurial/templater.py Thu Apr 30 12:33:36 2015 -0700 @@ -539,7 +539,12 @@ raise error.ParseError(_("word expects two or three arguments, got %d") % len(args)) - num = int(stringify(args[0][0](context, mapping, args[0][1]))) + try: + num = int(stringify(args[0][0](context, mapping, args[0][1]))) + except ValueError: + # i18n: "word" is a keyword + raise error.ParseError( + _("Use strings like '3' for numbers passed to word function")) text = stringify(args[1][0](context, mapping, args[1][1])) if len(args) == 3: splitter = stringify(args[2][0](context, mapping, args[2][1]))
--- a/tests/test-command-template.t Wed Apr 29 21:14:59 2015 -0400 +++ b/tests/test-command-template.t Thu Apr 30 12:33:36 2015 -0700 @@ -2620,3 +2620,9 @@ $ hg log -Gv -R a --template "{word('0', desc, 'o', 'h', 'b', 'o', 'y')}" hg: parse error: word expects two or three arguments, got 7 [255] + +Test word for invalid numbers + + $ hg log -Gv -R a --template "{word(2, desc)}" + hg: parse error: Use strings like '3' for numbers passed to word function + [255]