--- a/mercurial/hgweb/webutil.py Tue Apr 03 23:50:00 2018 +0900
+++ b/mercurial/hgweb/webutil.py Tue Apr 03 23:54:08 2018 +0900
@@ -575,50 +575,53 @@
linerange, lineidprefix)
return templateutil.mappinggenerator(_diffsgen, args=args, name='diffblock')
+def _compline(tmpl, type, leftlineno, leftline, rightlineno, rightline):
+ lineid = leftlineno and ("l%d" % leftlineno) or ''
+ lineid += rightlineno and ("r%d" % rightlineno) or ''
+ llno = '%d' % leftlineno if leftlineno else ''
+ rlno = '%d' % rightlineno if rightlineno else ''
+ return tmpl.generate('comparisonline', {
+ 'type': type,
+ 'lineid': lineid,
+ 'leftlineno': leftlineno,
+ 'leftlinenumber': "% 6s" % llno,
+ 'leftline': leftline or '',
+ 'rightlineno': rightlineno,
+ 'rightlinenumber': "% 6s" % rlno,
+ 'rightline': rightline or '',
+ })
+
def compare(tmpl, context, leftlines, rightlines):
'''Generator function that provides side-by-side comparison data.'''
- def compline(type, leftlineno, leftline, rightlineno, rightline):
- lineid = leftlineno and ("l%d" % leftlineno) or ''
- lineid += rightlineno and ("r%d" % rightlineno) or ''
- llno = '%d' % leftlineno if leftlineno else ''
- rlno = '%d' % rightlineno if rightlineno else ''
- return tmpl.generate('comparisonline', {
- 'type': type,
- 'lineid': lineid,
- 'leftlineno': leftlineno,
- 'leftlinenumber': "% 6s" % llno,
- 'leftline': leftline or '',
- 'rightlineno': rightlineno,
- 'rightlinenumber': "% 6s" % rlno,
- 'rightline': rightline or '',
- })
-
def getblock(opcodes):
for type, llo, lhi, rlo, rhi in opcodes:
len1 = lhi - llo
len2 = rhi - rlo
count = min(len1, len2)
for i in xrange(count):
- yield compline(type=type,
- leftlineno=llo + i + 1,
- leftline=leftlines[llo + i],
- rightlineno=rlo + i + 1,
- rightline=rightlines[rlo + i])
+ yield _compline(tmpl,
+ type=type,
+ leftlineno=llo + i + 1,
+ leftline=leftlines[llo + i],
+ rightlineno=rlo + i + 1,
+ rightline=rightlines[rlo + i])
if len1 > len2:
for i in xrange(llo + count, lhi):
- yield compline(type=type,
- leftlineno=i + 1,
- leftline=leftlines[i],
- rightlineno=None,
- rightline=None)
+ yield _compline(tmpl,
+ type=type,
+ leftlineno=i + 1,
+ leftline=leftlines[i],
+ rightlineno=None,
+ rightline=None)
elif len2 > len1:
for i in xrange(rlo + count, rhi):
- yield compline(type=type,
- leftlineno=None,
- leftline=None,
- rightlineno=i + 1,
- rightline=rightlines[i])
+ yield _compline(tmpl,
+ type=type,
+ leftlineno=None,
+ leftline=None,
+ rightlineno=i + 1,
+ rightline=rightlines[i])
s = difflib.SequenceMatcher(None, leftlines, rightlines)
if context < 0: