From: Jeff King Date: Mon, 23 May 2011 20:16:59 +0000 (-0400) Subject: combine-diff: calculate mode_differs earlier X-Git-Tag: v1.7.6.1~33^2~3 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=c95b99bb5d5f3aed88f8154371a813ebd0d2fa1d;p=git.git 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 --- 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);