def test_get_change_extent(self): self.assertEqual((3, 0), diff._get_change_extent('xxx', 'xxx')) self.assertEqual((0, 0), diff._get_change_extent('', 'xxx')) self.assertEqual((0, 0), diff._get_change_extent('xxx', '')) self.assertEqual((0, 0), diff._get_change_extent('xxx', 'yyy')) self.assertEqual((1, -1), diff._get_change_extent('xxx', 'xyx')) self.assertEqual((1, -1), diff._get_change_extent('xxx', 'xyyyx')) self.assertEqual((1, 0), diff._get_change_extent('xy', 'xzz')) self.assertEqual((1, -1), diff._get_change_extent('xyx', 'xzzx')) self.assertEqual((1, -1), diff._get_change_extent('xzzx', 'xyx'))
def _markup_intraline_change(fromlines, tolines): from trac.versioncontrol.diff import _get_change_extent for i in xrange(len(fromlines)): fr, to = fromlines[i], tolines[i] (start, end) = _get_change_extent(fr, to) if start != 0 and end != 0: fromlines[i] = fr[:start] + '\0' + fr[start:end+len(fr)] + \ '\1' + fr[end:] tolines[i] = to[:start] + '\0' + to[start:end+len(to)] + \ '\1' + to[end:]
def _markup_intraline_change(fromlines, tolines): from trac.versioncontrol.diff import _get_change_extent for i in xrange(len(fromlines)): fr, to = fromlines[i], tolines[i] (start, end) = _get_change_extent(fr, to) if start != 0 or end != 0: last = end+len(fr) fromlines[i] = fr[:start] + '\0' + fr[start:last] + \ '\1' + fr[last:] last = end+len(to) tolines[i] = to[:start] + '\0' + to[start:last] + \ '\1' + to[last:]