# HG changeset patch # User Martin von Zweigbergk # Date 2020-08-06 17:53:00 # Node ID c3376a724e3299042614517734ccd81f229cbd11 # Parent 735756ecda8c5b7cbaabe5460af86882445f2cfb templater: teach template loader to use open_template() function The template loader can apparently load templates from relative paths, so I needed to add that support to `open_template()`. This takes the number of failing tests with PyOxidizer from 54 to 34. Differential Revision: https://phab.mercurial-scm.org/D8907 diff --git a/mercurial/templater.py b/mercurial/templater.py --- a/mercurial/templater.py +++ b/mercurial/templater.py @@ -913,7 +913,8 @@ class loader(object): """Get parsed tree for the given template name. Use a local cache.""" if t not in self.cache: try: - self.cache[t] = util.readfile(self._map[t]) + mapfile, fp = open_template(self._map[t]) + self.cache[t] = fp.read() except KeyError as inst: raise templateutil.TemplateNotFound( _(b'"%s" not in template map') % inst.args[0] @@ -1092,7 +1093,7 @@ def open_template(name, templatepath=Non will then be the relative path. ''' # Does the name point directly to a map file? - if os.path.isabs(name): + if os.path.isfile(name) or os.path.isabs(name): return name, open(name, mode='rb') # Does the name point to a template in the provided templatepath, or