summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2014-04-19 19:20:46 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-04-21 17:32:07 (GMT)
commit0d4217d92e3043e23a8960519a51cc7a36ed8914 (patch)
treea852984463c509cd61e32a135a6eff0931fc7c61
parent5b88caa417ab221c8f8576332fba8d41dd3986d7 (diff)
downloadgit-0d4217d92e3043e23a8960519a51cc7a36ed8914.zip
git-0d4217d92e3043e23a8960519a51cc7a36ed8914.tar.gz
git-0d4217d92e3043e23a8960519a51cc7a36ed8914.tar.bz2
run_external_diff: hoist common bits out of conditional
Whether we have diff_filespecs to give to the diff command or not, we always are going to run the program and pass it the pathname. Let's pull that duplicated part out of the conditional to make it more obvious. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--diff.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/diff.c b/diff.c
index 4bad556..a360ab5 100644
--- a/diff.c
+++ b/diff.c
@@ -2911,13 +2911,14 @@ static void run_external_diff(const char *pgm,
struct argv_array env = ARGV_ARRAY_INIT;
struct diff_queue_struct *q = &diff_queued_diff;
+ argv_array_push(&argv, pgm);
+ argv_array_push(&argv, name);
+
if (one && two) {
struct diff_tempfile *temp_one, *temp_two;
const char *othername = (other ? other : name);
temp_one = prepare_temp_file(name, one);
temp_two = prepare_temp_file(othername, two);
- argv_array_push(&argv, pgm);
- argv_array_push(&argv, name);
argv_array_push(&argv, temp_one->name);
argv_array_push(&argv, temp_one->hex);
argv_array_push(&argv, temp_one->mode);
@@ -2928,9 +2929,6 @@ static void run_external_diff(const char *pgm,
argv_array_push(&argv, other);
argv_array_push(&argv, xfrm_msg);
}
- } else {
- argv_array_push(&argv, pgm);
- argv_array_push(&argv, name);
}
argv_array_pushf(&env, "GIT_DIFF_PATH_COUNTER=%d", ++o->diff_path_counter);