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