quark created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY 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. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D3210 AFFECTED FILES mercurial/patch.py CHANGE DETAILS diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -2499,9 +2499,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 @@ -2540,6 +2539,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 To: quark, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel