diff: simplify run_external_diff() quiet logic

We'd sometimes end up in run_external_diff() to do a dry-run diff (e.g., to find content-level changes for --quiet). We recognize this quiet mode by seeing the lack of DIFF_FORMAT_PATCH in the output format. But since introducing an explicit dry-run check via 3ed5d8bd73 (diff: stop output garbled message in dry run mode, 2025-10-20), this logic can never trigger. We can only get to this function by calling diff_flush_patch(), and that comes from only two places: 1. A dry-run flush comes from diff_flush_patch_quietly(), which is always in dry-run mode (so the other half of our "||" is true anyway). 2. A regular flush comes from diff_flush_patch_all_file_pairs(), which is only called when output_format has DIFF_FORMAT_PATCH in it. So we can simplify our "quiet" condition to just checking dry-run mode (which used to be a specific flag, but recently became just a NULL "file" pointer). And since it's so simple, we can just do that inline. This makes the logic about o->file more obvious, since we handle the NULL and non-stdout cases next to each other. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Oct 24, 2025 at 13:25 UTC 2ecb8857e7785b6b27887164cb1aca67ce0b114a
1 file changed +2 -3
diff.c
+2 -3
@@ -4423,7 +4423,6 @@ static void run_external_diff(const struct external_diff *pgm,
4423 {
4424 struct child_process cmd = CHILD_PROCESS_INIT;
4425 struct diff_queue_struct *q = &diff_queued_diff;
4426 - int quiet = !(o->output_format & DIFF_FORMAT_PATCH) || !o->file;
4426 int rc;
4427
4428 /*
@@ -4432,7 +4431,7 @@ static void run_external_diff(const struct external_diff *pgm,
4431 * external diff program lacks the ability to tell us whether
4432 * it's empty then we consider it non-empty without even asking.
4433 */
4435 - if (!pgm->trust_exit_code && quiet) {
4434 + if (!pgm->trust_exit_code && !o->file) {
4435 o->found_changes = 1;
4436 return;
4437 }
@@ -4457,7 +4456,7 @@ static void run_external_diff(const struct external_diff *pgm,
4456 diff_free_filespec_data(one);
4457 diff_free_filespec_data(two);
4458 cmd.use_shell = 1;
4460 - if (quiet)
4459 + if (!o->file)
4460 cmd.no_stdout = 1;
4461 else if (o->file != stdout)
4462 cmd.out = xdup(fileno(o->file));