# HG changeset patch # User Yuya Nishihara # Date 2017-04-22 06:06:06 # Node ID 11e667a8fcbaa590116e121338fa076773ebbed9 # Parent de7dc25ecf2e823311fb46a8b0a474a58ededa6a formatter: factor out function to create templater from literal or map file (tmpl, mapfile) will be packed into a named tuple later. diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1580,15 +1580,8 @@ class changeset_templater(changeset_prin def __init__(self, ui, repo, matchfn, diffopts, tmpl, mapfile, buffered): changeset_printer.__init__(self, ui, repo, matchfn, diffopts, buffered) - assert not (tmpl and mapfile) - defaulttempl = templatekw.defaulttempl - if mapfile: - self.t = templater.templater.frommapfile(mapfile, - cache=defaulttempl) - else: - self.t = formatter.maketemplater(ui, 'changeset', tmpl, - cache=defaulttempl) - + self.t = formatter.loadtemplater(ui, 'changeset', (tmpl, mapfile), + cache=templatekw.defaulttempl) self._counter = itertools.count() self.cache = {} diff --git a/mercurial/formatter.py b/mercurial/formatter.py --- a/mercurial/formatter.py +++ b/mercurial/formatter.py @@ -408,6 +408,12 @@ def lookuptemplate(ui, topic, tmpl): def gettemplater(ui, topic, spec, cache=None): tmpl, mapfile = lookuptemplate(ui, topic, spec) + return loadtemplater(ui, topic, (tmpl, mapfile), cache=cache) + +def loadtemplater(ui, topic, spec, cache=None): + """Create a templater from either a literal template or loading from + a map file""" + tmpl, mapfile = spec assert not (tmpl and mapfile) if mapfile: return templater.templater.frommapfile(mapfile, cache=cache)