comparison tests/test-template-functions.t @ 40935:4591c9791a82

templatefuncs: specialize "no match" value of search() to allow % operation If Python had Maybe or Option, the type of the search() result would be Option<Mapping>, which can be considered as a 0/1 container of a Mapping. So it makes sense that {search(r'no match pattern', x) % "whatever"} is mapped to an empty string.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 12 Dec 2018 22:45:02 +0900
parents d3e688b9ef2e
children 6704696141b8
comparison
equal deleted inserted replaced
40934:d3e688b9ef2e 40935:4591c9791a82
633 no 633 no
634 $ hg log -R a -r2 -T '{search(r"(?P<foo>[a-z]*)", desc).foo}\n' 634 $ hg log -R a -r2 -T '{search(r"(?P<foo>[a-z]*)", desc).foo}\n'
635 no 635 no
636 636
637 group reference with no match 637 group reference with no match
638 (TODO: we'll probably want to map it to an empty value)
639 638
640 $ hg log -R a -r2 -T '{search(r"q", desc) % "match: {0}"}\n' 639 $ hg log -R a -r2 -T '{search(r"q", desc) % "match: {0}"}\n'
641 hg: parse error: None is not iterable of mappings 640
642 [255]
643 641
644 bad group names 642 bad group names
645 643
646 $ hg log -R a -r2 -T '{search(r"(?P<0>.)", desc) % "{0}"}\n' 644 $ hg log -R a -r2 -T '{search(r"(?P<0>.)", desc) % "{0}"}\n'
647 hg: parse error: search got an invalid pattern: (?P<0>.) 645 hg: parse error: search got an invalid pattern: (?P<0>.)