From patchwork Mon Mar 6 09:38:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [5,of,9] mdiff: extract a checknonewline inner function in unidiff() From: Denis Laxalde X-Patchwork-Id: 18926 Message-Id: <27d0f56d5cde54f11cc1.1488793103@sh77.tls.logilab.fr> To: mercurial-devel@mercurial-scm.org Date: Mon, 06 Mar 2017 10:38:23 +0100 # HG changeset patch # User Denis Laxalde # Date 1488559588 -3600 # Fri Mar 03 17:46:28 2017 +0100 # Node ID 27d0f56d5cde54f11cc1c93c711fa2fc8bdaf8ec # Parent 3fce2b5c21f362f1082940786b92ca8794e029ce # Available At http://hg.logilab.org/users/dlaxalde/hg # hg pull http://hg.logilab.org/users/dlaxalde/hg -r 27d0f56d5cde # EXP-Topic diffhunks mdiff: extract a checknonewline inner function in unidiff() diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py --- a/mercurial/mdiff.py +++ b/mercurial/mdiff.py @@ -225,6 +225,12 @@ def unidiff(a, ad, b, bd, fn1, fn2, opts fn1 = util.pconvert(fn1) fn2 = util.pconvert(fn2) + def checknonewline(lines): + for text in lines: + if text[-1] != '\n': + text += "\n\ No newline at end of file\n" + yield text + if not opts.text and (util.binary(a) or util.binary(b)): if a and b and len(a) == len(b) and a == b: return sentinel @@ -258,11 +264,7 @@ def unidiff(a, ad, b, bd, fn1, fn2, opts "+++ %s%s%s" % (bprefix, fn2, datetag(bd, fn2)), ] - for ln in xrange(len(l)): - if l[ln][-1] != '\n': - l[ln] += "\n\ No newline at end of file\n" - - return headerlines, "".join(l) + return headerlines, "".join(checknonewline(l)) def _unidiff(t1, t2, opts=defaultopts): """Yield hunks of a headerless unified diff from t1 and t2 texts.