# HG changeset patch # User Martin von Zweigbergk # Date 2020-07-30 22:29:06 # Node ID d9a502a0a9caca0ae80162587e2e02af50ca2978 # Parent 3b27ed8e324ec01483fa8a36a652cf12b4af8ccb templater: unroll loop over mapfile directories I'll rewrite the handling of the `templatedir()` case in the next patch, so the two cases will be more different and the loop won't make as much sense. Differential Revision: https://phab.mercurial-scm.org/D8895 diff --git a/mercurial/templater.py b/mercurial/templater.py --- a/mercurial/templater.py +++ b/mercurial/templater.py @@ -829,17 +829,22 @@ def _readmapfile(fp, mapfile): conf = config.config() def include(rel, remap, sections): - templatedirs = [base, templatedir()] - for dir in templatedirs: - if dir is None: - continue - abs = os.path.normpath(os.path.join(dir, rel)) + subresource = None + if base: + abs = os.path.normpath(os.path.join(base, rel)) if os.path.isfile(abs): - data = util.posixfile(abs, b'rb').read() - conf.parse( - abs, data, sections=sections, remap=remap, include=include - ) - break + subresource = util.posixfile(abs, b'rb') + if not subresource: + dir = templatedir() + if dir: + abs = os.path.normpath(os.path.join(dir, rel)) + if os.path.isfile(abs): + subresource = util.posixfile(abs, b'rb') + if subresource: + data = subresource.read() + conf.parse( + abs, data, sections=sections, remap=remap, include=include, + ) data = fp.read() conf.parse(mapfile, data, remap={b'': b'templates'}, include=include)