Mercurial > hg
changeset 37730:8d730f96e792
patch: move yielding "\n" to the end of loop
The original logic makes it harder to reason about - it yields the "\n"
character belonging to the last line in the next loop iteration.
The new code is in theory a little bit slower. But is more readable. It
makes the following changes easier to read.
Differential Revision: https://phab.mercurial-scm.org/D3210
author | Jun Wu <quark@fb.com> |
---|---|
date | Mon, 19 Mar 2018 04:28:29 -0700 |
parents | 6e137da59ad9 |
children | 5471348921c1 |
files | mercurial/patch.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/patch.py Mon Apr 16 09:39:40 2018 -0700 +++ b/mercurial/patch.py Mon Mar 19 04:28:29 2018 -0700 @@ -2505,9 +2505,8 @@ matches = {} if inlinecolor: matches = _findmatches(lines) + linecount = len(lines) for i, line in enumerate(lines): - if i != 0: - yield ('\n', '') if head: if line.startswith('@'): head = False @@ -2546,6 +2545,8 @@ yield (line, '') if line != stripline: yield (line[len(stripline):], 'diff.trailingwhitespace') + if i + 1 < linecount: + yield ('\n', '') def _findmatches(slist): '''Look for insertion matches to deletion and returns a dict of