From c95b99bb5d5f3aed88f8154371a813ebd0d2fa1d Mon Sep 17 00:00:00 2001 From: Jeff King Date: Mon, 23 May 2011 16:16:59 -0400 Subject: [PATCH] combine-diff: calculate mode_differs earlier 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 Signed-off-by: Junio C Hamano --- combine-diff.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/combine-diff.c b/combine-diff.c index 309dc6c27..2183184ee 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); -- 2.30.2