Patchwork [03,of,10] hgweb: use template context to render {lines} of {diff}

login
register
mail settings
Submitter Yuya Nishihara
Date May 12, 2018, 3:35 a.m.
Message ID <61596d8c9f8c083ccac0.1526096110@mimosa>
Download mbox | patch
Permalink /patch/31532/
State Accepted
Headers show

Comments

Yuya Nishihara - May 12, 2018, 3:35 a.m.
# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1522766621 -32400
#      Tue Apr 03 23:43:41 2018 +0900
# Node ID 61596d8c9f8c083ccac07334e3a4010df7ad9646
# Parent  11a0e939b544d0c091c20b1d82bdc775a3b0b9ff
hgweb: use template context to render {lines} of {diff}

This is a preferred way to process nested templates.

Patch

diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py
--- a/mercurial/hgweb/webutil.py
+++ b/mercurial/hgweb/webutil.py
@@ -519,7 +519,7 @@  def listfilediffs(files, node, max):
     return templateutil.mappedgenerator(_listfilediffsgen,
                                         args=(files, node, max))
 
-def _prettyprintdifflines(context, tmpl, lines, blockno, lineidprefix):
+def _prettyprintdifflines(context, lines, blockno, lineidprefix):
     for lineno, l in enumerate(lines, 1):
         difflineno = "%d.%d" % (blockno, lineno)
         if l.startswith('+'):
@@ -530,7 +530,7 @@  def _prettyprintdifflines(context, tmpl,
             ltype = "difflineat"
         else:
             ltype = "diffline"
-        yield tmpl.generate(ltype, {
+        yield context.process(ltype, {
             'line': l,
             'lineno': lineno,
             'lineid': lineidprefix + "l%s" % difflineno,
@@ -563,7 +563,7 @@  def diffs(web, ctx, basectx, files, styl
             lines.extend(hunklines)
         if lines:
             l = templateutil.mappedgenerator(_prettyprintdifflines,
-                                             args=(web.tmpl, lines, blockno,
+                                             args=(lines, blockno,
                                                    lineidprefix))
             yield web.tmpl.generate('diffblock', {
                 'parity': next(parity),