# HG changeset patch # User Yuya Nishihara # Date 1491396454 -32400 # Node ID e5eab0fe69eeea4e787db1e3a4db45ce6cff1412 # Parent 8bcc8c9b4e9f579ebecab9315ce275de6d2d624f templatekw: have showlist() take mapping dict with no **kwargs expansion (API) See the previous commit for why. splitlines() does not pass a mapping dict, which would probably mean the legacy template didn't work from the beginning. diff -r 8bcc8c9b4e9f -r e5eab0fe69ee mercurial/templatefilters.py --- a/mercurial/templatefilters.py Wed Apr 05 21:40:38 2017 +0900 +++ b/mercurial/templatefilters.py Wed Apr 05 21:47:34 2017 +0900 @@ -339,7 +339,7 @@ @templatefilter('splitlines') def splitlines(text): """Any text. Split text into a list of lines.""" - return templatekw.showlist('line', text.splitlines(), 'lines') + return templatekw.showlist('line', text.splitlines(), {}, plural='lines') @templatefilter('stringescape') def stringescape(text): diff -r 8bcc8c9b4e9f -r e5eab0fe69ee mercurial/templatekw.py --- a/mercurial/templatekw.py Wed Apr 05 21:40:38 2017 +0900 +++ b/mercurial/templatekw.py Wed Apr 05 21:47:34 2017 +0900 @@ -78,7 +78,7 @@ return thing return thing.gen -def showlist(name, values, plural=None, element=None, separator=' ', **mapping): +def showlist(name, values, mapping, plural=None, element=None, separator=' '): if not element: element = name f = _showlist(name, values, mapping, plural, separator) @@ -283,8 +283,8 @@ """ branch = args['ctx'].branch() if branch != 'default': - return showlist('branch', [branch], plural='branches', **args) - return showlist('branch', [], plural='branches', **args) + return showlist('branch', [branch], args, plural='branches') + return showlist('branch', [], args, plural='branches') @templatekeyword('bookmarks') def showbookmarks(**args): @@ -303,7 +303,7 @@ """List of strings. The children of the changeset.""" ctx = args['ctx'] childrevs = ['%d:%s' % (cctx, cctx) for cctx in ctx.children()] - return showlist('children', childrevs, element='child', **args) + return showlist('children', childrevs, args, element='child') # Deprecated, but kept alive for help generation a purpose. @templatekeyword('currentbookmark') @@ -373,8 +373,8 @@ def showfileadds(**args): """List of strings. Files added by this changeset.""" repo, ctx, revcache = args['repo'], args['ctx'], args['revcache'] - return showlist('file_add', getfiles(repo, ctx, revcache)[1], - element='file', **args) + return showlist('file_add', getfiles(repo, ctx, revcache)[1], args, + element='file') @templatekeyword('file_copies') def showfilecopies(**args): @@ -420,22 +420,22 @@ def showfiledels(**args): """List of strings. Files removed by this changeset.""" repo, ctx, revcache = args['repo'], args['ctx'], args['revcache'] - return showlist('file_del', getfiles(repo, ctx, revcache)[2], - element='file', **args) + return showlist('file_del', getfiles(repo, ctx, revcache)[2], args, + element='file') @templatekeyword('file_mods') def showfilemods(**args): """List of strings. Files modified by this changeset.""" repo, ctx, revcache = args['repo'], args['ctx'], args['revcache'] - return showlist('file_mod', getfiles(repo, ctx, revcache)[0], - element='file', **args) + return showlist('file_mod', getfiles(repo, ctx, revcache)[0], args, + element='file') @templatekeyword('files') def showfiles(**args): """List of strings. All files modified, added, or removed by this changeset. """ - return showlist('file', args['ctx'].files(), **args) + return showlist('file', args['ctx'].files(), args) @templatekeyword('graphnode') def showgraphnode(repo, ctx, **args): @@ -529,7 +529,7 @@ repo = ctx.repo() ns = repo.names[namespace] names = ns.names(repo, ctx.node()) - return showlist(ns.templatename, names, plural=namespace, **args) + return showlist(ns.templatename, names, args, plural=namespace) @templatekeyword('namespaces') def shownamespaces(**args): @@ -538,7 +538,7 @@ ctx = args['ctx'] repo = ctx.repo() namespaces = util.sortdict((k, showlist('name', ns.names(repo, ctx.node()), - **args)) + args)) for k, ns in repo.names.iteritems()) f = _showlist('namespace', list(namespaces), args) return _hybrid(f, namespaces, @@ -634,7 +634,7 @@ ctx = args['ctx'] substate = ctx.substate if not substate: - return showlist('subrepo', [], **args) + return showlist('subrepo', [], args) psubstate = ctx.parents()[0].substate or {} subrepos = [] for sub in substate: @@ -643,7 +643,7 @@ for sub in psubstate: if sub not in substate: subrepos.append(sub) # removed in ctx - return showlist('subrepo', sorted(subrepos), **args) + return showlist('subrepo', sorted(subrepos), args) # don't remove "showtags" definition, even though namespaces will put # a helper function for "tags" keyword into "keywords" map automatically, @@ -670,7 +670,7 @@ (EXPERIMENTAL) """ - return showlist('trouble', args['ctx'].troubles(), **args) + return showlist('trouble', args['ctx'].troubles(), args) # tell hggettext to extract docstrings from these functions: i18nfunctions = keywords.values() diff -r 8bcc8c9b4e9f -r e5eab0fe69ee mercurial/templater.py --- a/mercurial/templater.py Wed Apr 05 21:40:38 2017 +0900 +++ b/mercurial/templater.py Wed Apr 05 21:47:34 2017 +0900 @@ -595,7 +595,7 @@ ctx = mapping['ctx'] m = ctx.match([raw]) files = list(ctx.matches(m)) - return templatekw.showlist("file", files, **mapping) + return templatekw.showlist("file", files, mapping) @templatefunc('fill(text[, width[, initialident[, hangindent]]])') def fill(context, mapping, args):