diff options
-rw-r--r-- | diff.c | 33 | ||||
-rwxr-xr-x | t/t4020-diff-external.sh | 8 |
2 files changed, 3 insertions, 38 deletions
@@ -40,7 +40,6 @@ #include "setup.h" #include "strmap.h" #include "ws.h" -#include "write-or-die.h" #ifdef NO_FAST_WORKING_DIRECTORY #define FAST_WORKING_DIRECTORY 0 @@ -4397,33 +4396,8 @@ static void run_external_diff(const char *pgm, diff_free_filespec_data(one); diff_free_filespec_data(two); cmd.use_shell = 1; - if (o->flags.diff_from_contents) { - int got_output = 0; - cmd.out = -1; - if (start_command(&cmd)) - die(_("external diff died, stopping at %s"), name); - for (;;) { - char buffer[8192]; - ssize_t len = xread(cmd.out, buffer, sizeof(buffer)); - if (!len) - break; - if (len < 0) - die(_("unable to read from external diff," - " stopping at %s"), name); - got_output = 1; - if (write_in_full(1, buffer, len) < 0) - die(_("unable to write output of external diff," - " stopping at %s"), name); - } - close(cmd.out); - if (finish_command(&cmd)) - die(_("external diff died, stopping at %s"), name); - if (got_output) - o->found_changes = 1; - } else { - if (run_command(&cmd)) - die(_("external diff died, stopping at %s"), name); - } + if (run_command(&cmd)) + die(_("external diff died, stopping at %s"), name); remove_tempfile(); } @@ -4870,7 +4844,6 @@ void diff_setup_done(struct diff_options *options) */ if ((options->xdl_opts & XDF_WHITESPACE_FLAGS) || - options->flags.exit_with_status || options->ignore_regex_nr) options->flags.diff_from_contents = 1; else @@ -6759,7 +6732,7 @@ void diff_flush(struct diff_options *options) if (output_format & DIFF_FORMAT_CALLBACK) options->format_callback(q, options, options->format_callback_data); - if ((!output_format || output_format & DIFF_FORMAT_NO_OUTPUT) && + if (output_format & DIFF_FORMAT_NO_OUTPUT && options->flags.exit_with_status && options->flags.diff_from_contents) { /* diff --git a/t/t4020-diff-external.sh b/t/t4020-diff-external.sh index b525d16c90..c1ac09ecc7 100755 --- a/t/t4020-diff-external.sh +++ b/t/t4020-diff-external.sh @@ -172,14 +172,6 @@ test_expect_success 'no diff with -diff' ' grep Binary out ' -test_expect_success 'diff.external and --exit-code with output' ' - test_expect_code 1 git -c diff.external=echo diff --exit-code -' - -test_expect_success 'diff.external and --exit-code without output' ' - git -c diff.external=true diff --exit-code -' - echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file test_expect_success 'force diff with "diff"' ' |