Mercurial > public > mercurial-scm > hg
comparison mercurial/mdiff.py @ 38783:e7aa113b14f7
global: use pycompat.xrange()
On Python 3, our module importer automatically rewrites xrange()
to pycompat.xrange().
We want to move away from the custom importer on Python 3.
This commit converts all instances of xrange() to use
pycompat.xrange().
Differential Revision: https://phab.mercurial-scm.org/D4032
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 01 Aug 2018 13:00:45 -0700 |
parents | d3286dd2ca2f |
children | 2372284d9457 |
comparison
equal
deleted
inserted
replaced
38782:7eba8f83129b | 38783:e7aa113b14f7 |
---|---|
355 if opts.showfunc: | 355 if opts.showfunc: |
356 lastpos, func = lastfunc | 356 lastpos, func = lastfunc |
357 # walk backwards from the start of the context up to the start of | 357 # walk backwards from the start of the context up to the start of |
358 # the previous hunk context until we find a line starting with an | 358 # the previous hunk context until we find a line starting with an |
359 # alphanumeric char. | 359 # alphanumeric char. |
360 for i in xrange(astart - 1, lastpos - 1, -1): | 360 for i in pycompat.xrange(astart - 1, lastpos - 1, -1): |
361 if l1[i][0:1].isalnum(): | 361 if l1[i][0:1].isalnum(): |
362 func = b' ' + l1[i].rstrip() | 362 func = b' ' + l1[i].rstrip() |
363 # split long function name if ASCII. otherwise we have no | 363 # split long function name if ASCII. otherwise we have no |
364 # idea where the multi-byte boundary is, so just leave it. | 364 # idea where the multi-byte boundary is, so just leave it. |
365 if encoding.isasciistr(func): | 365 if encoding.isasciistr(func): |
379 | 379 |
380 hunkrange = astart, alen, bstart, blen | 380 hunkrange = astart, alen, bstart, blen |
381 hunklines = ( | 381 hunklines = ( |
382 ["@@ -%d,%d +%d,%d @@%s\n" % (hunkrange + (func,))] | 382 ["@@ -%d,%d +%d,%d @@%s\n" % (hunkrange + (func,))] |
383 + delta | 383 + delta |
384 + [' ' + l1[x] for x in xrange(a2, aend)] | 384 + [' ' + l1[x] for x in pycompat.xrange(a2, aend)] |
385 ) | 385 ) |
386 # If either file ends without a newline and the last line of | 386 # If either file ends without a newline and the last line of |
387 # that file is part of a hunk, a marker is printed. If the | 387 # that file is part of a hunk, a marker is printed. If the |
388 # last line of both files is identical and neither ends in | 388 # last line of both files is identical and neither ends in |
389 # a newline, print only one marker. That's the only case in | 389 # a newline, print only one marker. That's the only case in |
390 # which the hunk can end in a shared line without a newline. | 390 # which the hunk can end in a shared line without a newline. |
391 skip = False | 391 skip = False |
392 if not t1.endswith('\n') and astart + alen == len(l1) + 1: | 392 if not t1.endswith('\n') and astart + alen == len(l1) + 1: |
393 for i in xrange(len(hunklines) - 1, -1, -1): | 393 for i in pycompat.xrange(len(hunklines) - 1, -1, -1): |
394 if hunklines[i].startswith(('-', ' ')): | 394 if hunklines[i].startswith(('-', ' ')): |
395 if hunklines[i].startswith(' '): | 395 if hunklines[i].startswith(' '): |
396 skip = True | 396 skip = True |
397 hunklines[i] += '\n' | 397 hunklines[i] += '\n' |
398 hunklines.insert(i + 1, _missing_newline_marker) | 398 hunklines.insert(i + 1, _missing_newline_marker) |
399 break | 399 break |
400 if not skip and not t2.endswith('\n') and bstart + blen == len(l2) + 1: | 400 if not skip and not t2.endswith('\n') and bstart + blen == len(l2) + 1: |
401 for i in xrange(len(hunklines) - 1, -1, -1): | 401 for i in pycompat.xrange(len(hunklines) - 1, -1, -1): |
402 if hunklines[i].startswith('+'): | 402 if hunklines[i].startswith('+'): |
403 hunklines[i] += '\n' | 403 hunklines[i] += '\n' |
404 hunklines.insert(i + 1, _missing_newline_marker) | 404 hunklines.insert(i + 1, _missing_newline_marker) |
405 break | 405 break |
406 yield hunkrange, hunklines | 406 yield hunkrange, hunklines |