Mercurial > public > mercurial-scm > hg-stable
diff mercurial/templater.py @ 21821:4a445dc5abff
templater: introduce startswith function
This function returns a string only if it starts with a given string.
It is particularly useful when combined with splitlines and/or used with
conditionals that fail when empty strings are passed in to take action
based on the contents of a line.
author | Ryan McElroy <rmcelroy@fb.com> |
---|---|
date | Thu, 12 Jun 2014 17:53:37 -0700 |
parents | f2c617ff2abc |
children | 028a48105191 |
line wrap: on
line diff
--- a/mercurial/templater.py Thu Jun 12 17:45:41 2014 -0700 +++ b/mercurial/templater.py Thu Jun 12 17:53:37 2014 -0700 @@ -466,6 +466,17 @@ src = stringify(_evalifliteral(args[2], context, mapping)) yield re.sub(pat, rpl, src) +def startswith(context, mapping, args): + if len(args) != 2: + raise error.ParseError(_("startswith expects two arguments")) + + patn = stringify(args[0][0](context, mapping, args[0][1])) + text = stringify(args[1][0](context, mapping, args[1][1])) + if text.startswith(patn): + return text + return '' + + methods = { "string": lambda e, c: (runstring, e[1]), "rawstring": lambda e, c: (runrawstring, e[1]), @@ -490,6 +501,7 @@ "revset": revset, "rstdoc": rstdoc, "shortest": shortest, + "startswith": startswith, "strip": strip, "sub": sub, }