diff -r 4647e0a8d3d7 -r dd28b1f55eb8 mercurial/templatekw.py --- a/mercurial/templatekw.py Sun Sep 24 12:43:57 2017 +0900 +++ b/mercurial/templatekw.py Sun Sep 24 15:22:46 2017 +0900 @@ -48,10 +48,10 @@ return self._defaultgen() def _defaultgen(self): """Generator to stringify this as {join(self, ' ')}""" - for i, d in enumerate(self.itermaps()): + for i, x in enumerate(self._values): if i > 0: yield ' ' - yield self.joinfmt(d) + yield self.joinfmt(x) def itermaps(self): makemap = self._makemap for x in self._values: @@ -73,11 +73,11 @@ def hybriddict(data, key='key', value='value', fmt='%s=%s', gen=None): """Wrap data to support both dict-like and string-like operations""" return _hybrid(gen, data, lambda k: {key: k, value: data[k]}, - lambda d: fmt % (d[key], d[value])) + lambda k: fmt % (k, data[k])) def hybridlist(data, name, fmt='%s', gen=None): """Wrap data to support both list-like and string-like operations""" - return _hybrid(gen, data, lambda x: {name: x}, lambda d: fmt % d[name]) + return _hybrid(gen, data, lambda x: {name: x}, lambda x: fmt % x) def unwraphybrid(thing): """Return an object which can be stringified possibly by using a legacy @@ -315,7 +315,7 @@ active = repo._activebookmark makemap = lambda v: {'bookmark': v, 'active': active, 'current': active} f = _showlist('bookmark', bookmarks, args) - return _hybrid(f, bookmarks, makemap, lambda x: x['bookmark']) + return _hybrid(f, bookmarks, makemap, pycompat.identity) @templatekeyword('children') def showchildren(**args): @@ -384,7 +384,7 @@ c = [makemap(k) for k in extras] f = _showlist('extra', c, args, plural='extras') return _hybrid(f, extras, makemap, - lambda x: '%s=%s' % (x['key'], util.escapestr(x['value']))) + lambda k: '%s=%s' % (k, util.escapestr(extras[k]))) @templatekeyword('file_adds') def showfileadds(**args): @@ -510,7 +510,7 @@ tags = latesttags[2] f = _showlist('latesttag', tags, args, separator=':') - return _hybrid(f, tags, makemap, lambda x: x['latesttag']) + return _hybrid(f, tags, makemap, pycompat.identity) @templatekeyword('latesttagdistance') def showlatesttagdistance(repo, ctx, templ, cache, **args): @@ -584,7 +584,7 @@ 'colorname': colornames[ns], } - return _hybrid(f, namespaces, makemap, lambda x: x['namespace']) + return _hybrid(f, namespaces, makemap, pycompat.identity) @templatekeyword('node') def shownode(repo, ctx, templ, **args): @@ -618,7 +618,7 @@ # no hybriddict() since d['path'] can't be formatted as a string. perhaps # hybriddict() should call templatefilters.stringify(d[value]). return _hybrid(None, paths, lambda k: {'name': k, 'path': paths[k]}, - lambda d: '%s=%s' % (d['name'], d['path']['url'])) + lambda k: '%s=%s' % (k, paths[k]['url'])) @templatekeyword("predecessors") def showpredecessors(repo, ctx, **args): @@ -629,7 +629,7 @@ return _hybrid(None, predecessors, lambda x: {'ctx': repo[x], 'revcache': {}}, - lambda d: scmutil.formatchangeid(d['ctx'])) + lambda x: scmutil.formatchangeid(repo[x])) @templatekeyword("successorssets") def showsuccessorssets(repo, ctx, **args): @@ -647,7 +647,7 @@ data = [] for ss in ssets: h = _hybrid(None, ss, lambda x: {'ctx': repo[x], 'revcache': {}}, - lambda d: scmutil.formatchangeid(d['ctx'])) + lambda x: scmutil.formatchangeid(repo[x])) data.append(h) # Format the successorssets @@ -661,7 +661,7 @@ yield "; ".join(render(d) for d in data) return _hybrid(gen(data), data, lambda x: {'successorset': x}, - lambda d: d["successorset"]) + pycompat.identity) @templatekeyword("succsandmarkers") def showsuccsandmarkers(repo, ctx, **args): @@ -687,7 +687,7 @@ successors = [hex(n) for n in successors] successors = _hybrid(None, successors, lambda x: {'ctx': repo[x], 'revcache': {}}, - lambda d: scmutil.formatchangeid(d['ctx'])) + lambda x: scmutil.formatchangeid(repo[x])) # Format markers finalmarkers = [] @@ -703,7 +703,7 @@ data.append({'successors': successors, 'markers': finalmarkers}) f = _showlist('succsandmarkers', data, args) - return _hybrid(f, data, lambda x: x, lambda d: d) + return _hybrid(f, data, lambda x: x, pycompat.identity) @templatekeyword('p1rev') def showp1rev(repo, ctx, templ, **args): @@ -748,7 +748,7 @@ for p in pctxs] f = _showlist('parent', parents, args) return _hybrid(f, prevs, lambda x: {'ctx': repo[int(x)], 'revcache': {}}, - lambda d: scmutil.formatchangeid(d['ctx'])) + lambda x: scmutil.formatchangeid(repo[int(x)])) @templatekeyword('phase') def showphase(repo, ctx, templ, **args): @@ -775,7 +775,7 @@ f = _showlist(name, revs, args) return _hybrid(f, revs, lambda x: {name: x, 'ctx': repo[int(x)], 'revcache': {}}, - lambda d: d[name]) + pycompat.identity) @templatekeyword('subrepos') def showsubrepos(**args):