add-patch: do not show UI messages on stderr

There is no need to show some UI messages on stderr, and yet doing so
may produce some undesirable results, such as messages appearing in an
unexpected order.

Let's use stdout for all UI messages, and adjusts the tests accordingly.

Signed-off-by: Rubén Justo <rjusto@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Rubén Justo
2024-04-29 20:37:03 +02:00
committed by Junio C Hamano
parent ae3196a5ea
commit 9d225b025d
2 changed files with 12 additions and 13 deletions

View File

@ -293,10 +293,9 @@ static void err(struct add_p_state *s, const char *fmt, ...)
va_list args;
va_start(args, fmt);
fputs(s->s.error_color, stderr);
vfprintf(stderr, fmt, args);
fputs(s->s.reset_color, stderr);
fputc('\n', stderr);
fputs(s->s.error_color, stdout);
vprintf(fmt, args);
puts(s->s.reset_color);
va_end(args);
}
@ -1326,7 +1325,7 @@ static int apply_for_checkout(struct add_p_state *s, struct strbuf *diff,
err(s, _("Nothing was applied.\n"));
} else
/* As a last resort, show the diff to the user */
fwrite(diff->buf, diff->len, 1, stderr);
fwrite(diff->buf, diff->len, 1, stdout);
return 0;
}
@ -1777,9 +1776,9 @@ int run_add_p(struct repository *r, enum add_p_mode mode,
break;
if (s.file_diff_nr == 0)
fprintf(stderr, _("No changes.\n"));
err(&s, _("No changes."));
else if (binary_count == s.file_diff_nr)
fprintf(stderr, _("Only binary files changed.\n"));
err(&s, _("Only binary files changed."));
add_p_state_clear(&s);
return 0;