From: Jeff King Date: Mon, 23 May 2011 20:16:59 GMT Subject: [PATCH 2/5] combine-diff: calculate mode_differs earlier Message-ID: <20110523201659.GB6298@sigill.intra.peff.net> In-Reply-To: <20110523201529.GA6281@sigill.intra.peff.net> One loop combined both the patch generation and checking whether there was any mode change to report. Let's factor that into two separate loops, as we may care about the mode change even if we are not generating patches (e.g., because we are showing a binary diff, which will come in a future patch). Signed-off-by: Jeff King --- combine-diff.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/combine-diff.c b/combine-diff.c index 309dc6c..2183184 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -845,6 +845,13 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent, close(fd); } + for (i = 0; i < num_parent; i++) { + if (elem->parent[i].mode != elem->mode) { + mode_differs = 1; + break; + } + } + for (cnt = 0, cp = result; cp < result + result_size; cp++) { if (*cp == '\n') cnt++; @@ -893,8 +900,6 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent, elem->parent[i].mode, &result_file, sline, cnt, i, num_parent, result_deleted); - if (elem->parent[i].mode != elem->mode) - mode_differs = 1; } show_hunks = make_hunks(sline, cnt, num_parent, dense); -- 1.7.5.2.4.g43415