wt-status: print to s->fp, not stdout

We pass around a `FILE *` in the `struct wt_status` and almost always
print to it. But in a few places, we write to `stdout` instead, either
explicitly through `fprintf(stdout, ...)` or implicitly with
`printf(...)` (and a few `putchar(...)`).

Always be explicit about writing to `s->fp`. To the best of my
understanding, this never mattered in practice because these spots are
involved in various forms of `git status` which always end up at
standard output anyway. When we do write to another file, it's because
we're creating a commit message template, and these code paths aren't
involved.

But let's be consistent to help future readers and avoid future bugs.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Martin Ågren 2020-09-27 15:15:42 +02:00 committed by Junio C Hamano
parent b1f1ade87b
commit 8f7e3de097

View File

@ -1801,29 +1801,36 @@ static void wt_longstatus_print(struct wt_status *s)
; /* nothing */ ; /* nothing */
else if (s->workdir_dirty) { else if (s->workdir_dirty) {
if (s->hints) if (s->hints)
printf(_("no changes added to commit " fprintf(s->fp, _("no changes added to commit "
"(use \"git add\" and/or \"git commit -a\")\n")); "(use \"git add\" and/or "
"\"git commit -a\")\n"));
else else
printf(_("no changes added to commit\n")); fprintf(s->fp, _("no changes added to "
"commit\n"));
} else if (s->untracked.nr) { } else if (s->untracked.nr) {
if (s->hints) if (s->hints)
printf(_("nothing added to commit but untracked files " fprintf(s->fp, _("nothing added to commit but "
"present (use \"git add\" to track)\n")); "untracked files present (use "
"\"git add\" to track)\n"));
else else
printf(_("nothing added to commit but untracked files present\n")); fprintf(s->fp, _("nothing added to commit but "
"untracked files present\n"));
} else if (s->is_initial) { } else if (s->is_initial) {
if (s->hints) if (s->hints)
printf(_("nothing to commit (create/copy files " fprintf(s->fp, _("nothing to commit (create/"
"and use \"git add\" to track)\n")); "copy files and use \"git "
"add\" to track)\n"));
else else
printf(_("nothing to commit\n")); fprintf(s->fp, _("nothing to commit\n"));
} else if (!s->show_untracked_files) { } else if (!s->show_untracked_files) {
if (s->hints) if (s->hints)
printf(_("nothing to commit (use -u to show untracked files)\n")); fprintf(s->fp, _("nothing to commit (use -u to "
"show untracked files)\n"));
else else
printf(_("nothing to commit\n")); fprintf(s->fp, _("nothing to commit\n"));
} else } else
printf(_("nothing to commit, working tree clean\n")); fprintf(s->fp, _("nothing to commit, working tree "
"clean\n"));
} }
if(s->show_stash) if(s->show_stash)
wt_longstatus_print_stash_summary(s); wt_longstatus_print_stash_summary(s);
@ -1846,12 +1853,12 @@ static void wt_shortstatus_unmerged(struct string_list_item *it,
} }
color_fprintf(s->fp, color(WT_STATUS_UNMERGED, s), "%s", how); color_fprintf(s->fp, color(WT_STATUS_UNMERGED, s), "%s", how);
if (s->null_termination) { if (s->null_termination) {
fprintf(stdout, " %s%c", it->string, 0); fprintf(s->fp, " %s%c", it->string, 0);
} else { } else {
struct strbuf onebuf = STRBUF_INIT; struct strbuf onebuf = STRBUF_INIT;
const char *one; const char *one;
one = quote_path(it->string, s->prefix, &onebuf); one = quote_path(it->string, s->prefix, &onebuf);
printf(" %s\n", one); fprintf(s->fp, " %s\n", one);
strbuf_release(&onebuf); strbuf_release(&onebuf);
} }
} }
@ -1864,16 +1871,16 @@ static void wt_shortstatus_status(struct string_list_item *it,
if (d->index_status) if (d->index_status)
color_fprintf(s->fp, color(WT_STATUS_UPDATED, s), "%c", d->index_status); color_fprintf(s->fp, color(WT_STATUS_UPDATED, s), "%c", d->index_status);
else else
putchar(' '); fputc(' ', s->fp);
if (d->worktree_status) if (d->worktree_status)
color_fprintf(s->fp, color(WT_STATUS_CHANGED, s), "%c", d->worktree_status); color_fprintf(s->fp, color(WT_STATUS_CHANGED, s), "%c", d->worktree_status);
else else
putchar(' '); fputc(' ', s->fp);
putchar(' '); fputc(' ', s->fp);
if (s->null_termination) { if (s->null_termination) {
fprintf(stdout, "%s%c", it->string, 0); fprintf(s->fp, "%s%c", it->string, 0);
if (d->rename_source) if (d->rename_source)
fprintf(stdout, "%s%c", d->rename_source, 0); fprintf(s->fp, "%s%c", d->rename_source, 0);
} else { } else {
struct strbuf onebuf = STRBUF_INIT; struct strbuf onebuf = STRBUF_INIT;
const char *one; const char *one;
@ -1881,20 +1888,20 @@ static void wt_shortstatus_status(struct string_list_item *it,
if (d->rename_source) { if (d->rename_source) {
one = quote_path(d->rename_source, s->prefix, &onebuf); one = quote_path(d->rename_source, s->prefix, &onebuf);
if (*one != '"' && strchr(one, ' ') != NULL) { if (*one != '"' && strchr(one, ' ') != NULL) {
putchar('"'); fputc('"', s->fp);
strbuf_addch(&onebuf, '"'); strbuf_addch(&onebuf, '"');
one = onebuf.buf; one = onebuf.buf;
} }
printf("%s -> ", one); fprintf(s->fp, "%s -> ", one);
strbuf_release(&onebuf); strbuf_release(&onebuf);
} }
one = quote_path(it->string, s->prefix, &onebuf); one = quote_path(it->string, s->prefix, &onebuf);
if (*one != '"' && strchr(one, ' ') != NULL) { if (*one != '"' && strchr(one, ' ') != NULL) {
putchar('"'); fputc('"', s->fp);
strbuf_addch(&onebuf, '"'); strbuf_addch(&onebuf, '"');
one = onebuf.buf; one = onebuf.buf;
} }
printf("%s\n", one); fprintf(s->fp, "%s\n", one);
strbuf_release(&onebuf); strbuf_release(&onebuf);
} }
} }
@ -1903,13 +1910,13 @@ static void wt_shortstatus_other(struct string_list_item *it,
struct wt_status *s, const char *sign) struct wt_status *s, const char *sign)
{ {
if (s->null_termination) { if (s->null_termination) {
fprintf(stdout, "%s %s%c", sign, it->string, 0); fprintf(s->fp, "%s %s%c", sign, it->string, 0);
} else { } else {
struct strbuf onebuf = STRBUF_INIT; struct strbuf onebuf = STRBUF_INIT;
const char *one; const char *one;
one = quote_path(it->string, s->prefix, &onebuf); one = quote_path(it->string, s->prefix, &onebuf);
color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign); color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign);
printf(" %s\n", one); fprintf(s->fp, " %s\n", one);
strbuf_release(&onebuf); strbuf_release(&onebuf);
} }
} }