517 |
517 |
518 def listfilediffs(files, node, max): |
518 def listfilediffs(files, node, max): |
519 return templateutil.mappedgenerator(_listfilediffsgen, |
519 return templateutil.mappedgenerator(_listfilediffsgen, |
520 args=(files, node, max)) |
520 args=(files, node, max)) |
521 |
521 |
522 def _prettyprintdifflines(context, tmpl, lines, blockno, lineidprefix): |
522 def _prettyprintdifflines(context, lines, blockno, lineidprefix): |
523 for lineno, l in enumerate(lines, 1): |
523 for lineno, l in enumerate(lines, 1): |
524 difflineno = "%d.%d" % (blockno, lineno) |
524 difflineno = "%d.%d" % (blockno, lineno) |
525 if l.startswith('+'): |
525 if l.startswith('+'): |
526 ltype = "difflineplus" |
526 ltype = "difflineplus" |
527 elif l.startswith('-'): |
527 elif l.startswith('-'): |
528 ltype = "difflineminus" |
528 ltype = "difflineminus" |
529 elif l.startswith('@'): |
529 elif l.startswith('@'): |
530 ltype = "difflineat" |
530 ltype = "difflineat" |
531 else: |
531 else: |
532 ltype = "diffline" |
532 ltype = "diffline" |
533 yield tmpl.generate(ltype, { |
533 yield context.process(ltype, { |
534 'line': l, |
534 'line': l, |
535 'lineno': lineno, |
535 'lineno': lineno, |
536 'lineid': lineidprefix + "l%s" % difflineno, |
536 'lineid': lineidprefix + "l%s" % difflineno, |
537 'linenumber': "% 8s" % difflineno, |
537 'linenumber': "% 8s" % difflineno, |
538 }) |
538 }) |
561 if not mdiff.hunkinrange((s2, l2), linerange): |
561 if not mdiff.hunkinrange((s2, l2), linerange): |
562 continue |
562 continue |
563 lines.extend(hunklines) |
563 lines.extend(hunklines) |
564 if lines: |
564 if lines: |
565 l = templateutil.mappedgenerator(_prettyprintdifflines, |
565 l = templateutil.mappedgenerator(_prettyprintdifflines, |
566 args=(web.tmpl, lines, blockno, |
566 args=(lines, blockno, |
567 lineidprefix)) |
567 lineidprefix)) |
568 yield web.tmpl.generate('diffblock', { |
568 yield web.tmpl.generate('diffblock', { |
569 'parity': next(parity), |
569 'parity': next(parity), |
570 'blockno': blockno, |
570 'blockno': blockno, |
571 'lines': l, |
571 'lines': l, |