Mercurial > hg-stable
changeset 25782:babd2c93bd99
templater: check existence of closing brace of template string
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 15 Jun 2015 23:03:30 +0900 |
parents | 82c918509ef5 |
children | 1f6878c87c25 |
files | mercurial/templater.py tests/test-command-template.t |
diffstat | 2 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Mon Jun 15 22:55:34 2015 +0900 +++ b/mercurial/templater.py Mon Jun 15 23:03:30 2015 +0900 @@ -120,12 +120,12 @@ yield ('symbol', sym, s) pos -= 1 elif c == '}': - pos += 1 - break + yield ('end', None, pos + 1) + return else: raise error.ParseError(_("syntax error"), pos) pos += 1 - yield ('end', None, pos) + raise error.ParseError(_("unterminated template expansion"), start) def _parsetemplate(tmpl, start, stop): parsed = []
--- a/tests/test-command-template.t Mon Jun 15 22:55:34 2015 +0900 +++ b/tests/test-command-template.t Mon Jun 15 23:03:30 2015 +0900 @@ -2513,6 +2513,10 @@ abort: t:3: unmatched quotes [255] + $ hg log -T '{date' + hg: parse error at 1: unterminated template expansion + [255] + Behind the scenes, this will throw TypeError $ hg log -l 3 --template '{date|obfuscate}\n'