mercurial/hgweb/webutil.py
changeset 31671 aaebc80c9f1d
parent 31670 5e6d44511317
child 31709 cbe0bea82c79
--- a/mercurial/hgweb/webutil.py	Thu Jan 19 17:41:00 2017 +0100
+++ b/mercurial/hgweb/webutil.py	Mon Mar 13 15:15:49 2017 +0100
@@ -434,7 +434,7 @@
     if len(files) > max:
         yield tmpl('fileellipses')
 
-def diffs(web, tmpl, ctx, basectx, files, style):
+def diffs(web, tmpl, ctx, basectx, files, style, linerange=None):
 
     def prettyprintlines(lines, blockno):
         for lineno, l in enumerate(lines, 1):
@@ -470,6 +470,11 @@
             header = header[1:]
         lines = [h + '\n' for h in header]
         for hunkrange, hunklines in hunks:
+            if linerange is not None and hunkrange is not None:
+                s1, l1, s2, l2 = hunkrange
+                lb, ub = linerange
+                if not (lb <= s2 < ub or lb < s2 + l2 <= ub):
+                    continue
             lines.extend(hunklines)
         if lines:
             yield tmpl('diffblock', parity=next(parity), blockno=blockno,