Mercurial > hg-stable
changeset 37227:e70a90a72b80
templatefuncs: use evaldate() where seems appropriate
This means date("today") is allowed.
Also fixes evaldate() to forcibly use the custom error message if specified.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 18 Mar 2018 15:58:22 +0900 |
parents | 67efce231633 |
children | 920589f52be9 |
files | mercurial/templatefuncs.py mercurial/templateutil.py |
diffstat | 2 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templatefuncs.py Sun Mar 18 15:55:31 2018 +0900 +++ b/mercurial/templatefuncs.py Sun Mar 18 15:58:22 2018 +0900 @@ -52,18 +52,16 @@ # i18n: "date" is a keyword raise error.ParseError(_("date expects one or two arguments")) - date = evalfuncarg(context, mapping, args[0]) + date = evaldate(context, mapping, args[0], + # i18n: "date" is a keyword + _("date expects a date information")) fmt = None if len(args) == 2: fmt = evalstring(context, mapping, args[1]) - try: - if fmt is None: - return dateutil.datestr(date) - else: - return dateutil.datestr(date, fmt) - except (TypeError, ValueError): - # i18n: "date" is a keyword - raise error.ParseError(_("date expects a date information")) + if fmt is None: + return dateutil.datestr(date) + else: + return dateutil.datestr(date, fmt) @templatefunc('dict([[key=]value...])', argspec='*args **kwargs') def dict_(context, mapping, args):
--- a/mercurial/templateutil.py Sun Mar 18 15:55:31 2018 +0900 +++ b/mercurial/templateutil.py Sun Mar 18 15:58:22 2018 +0900 @@ -330,6 +330,10 @@ return dateutil.parsedate(thing) except AttributeError: raise error.ParseError(err or _('not a date tuple nor a string')) + except error.ParseError: + if not err: + raise + raise error.ParseError(err) def evalinteger(context, mapping, arg, err=None): return unwrapinteger(evalrawexp(context, mapping, arg), err)