mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
templater: fix ifcontains() to evaluate items argument eagerly
See the previous patch for why. An "items" argument may be a string, a generator, or an arbitrary container object.
This commit is contained in:
parent
85d9fe1400
commit
f96cf1c058
@ -466,7 +466,7 @@ def ifcontains(context, mapping, args):
|
||||
raise error.ParseError(_("ifcontains expects three or four arguments"))
|
||||
|
||||
item = stringify(args[0][0](context, mapping, args[0][1]))
|
||||
items = args[1][0](context, mapping, args[1][1])
|
||||
items = evalfuncarg(context, mapping, args[1])
|
||||
|
||||
if item in items:
|
||||
yield args[2][0](context, mapping, args[2][1])
|
||||
|
@ -3248,6 +3248,11 @@ Test ifcontains function
|
||||
1 is not
|
||||
0 is in the string
|
||||
|
||||
$ hg log -T '{rev} {ifcontains(rev, "2 two{" 0"}", "is in the string", "is not")}\n'
|
||||
2 is in the string
|
||||
1 is not
|
||||
0 is in the string
|
||||
|
||||
$ hg log --template '{rev} {ifcontains("a", file_adds, "added a", "did not add a")}\n'
|
||||
2 did not add a
|
||||
1 did not add a
|
||||
|
Loading…
Reference in New Issue
Block a user