diff mercurial/templatefuncs.py @ 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
line wrap: on
line diff
--- a/mercurial/templatefuncs.py	Wed Dec 12 22:19:57 2018 +0900
+++ b/mercurial/templatefuncs.py	Wed Dec 12 22:45:02 2018 +0900
@@ -609,7 +609,7 @@
 
     match = patre.search(src)
     if not match:
-        return
+        return templateutil.mappingnone()
 
     lm = {b'0': match.group(0)}
     lm.update((b'%d' % i, v) for i, v in enumerate(match.groups(), 1))