[PATCH 4/5] status: fix null termination with "-b"
- From
Jeff King <peff@peff.net>
- Date
- May 7, 2012, 21:24 UTC
- Message-ID
- <20120507212438.GD19567@sigill.intra.peff.net>
- In-Reply-To
- <20120507212125.GA19532@sigill.intra.peff.net>
When the "-z" option is given to status, we are supposed to NUL-terminate each record. However, the "-b" code to show the tracking branch did not respect this, and always ended with a newline.
Signed-off-by: Jeff King <peff@peff.net> --- t/t7508-status.sh | 9 +++++++++ wt-status.c | 7 ++++--- 2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 8f5cfac..f60f49b 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -295,6 +295,15 @@ test_expect_success 'status -s -b' ' ' +test_expect_success 'status -s -z -b' ' + tr "\\n" Q <expect >expect.q && + mv expect.q expect && + git status -s -z -b >output && + nul_to_q <output >output.q && + mv output.q output && + test_cmp expect output +' + test_expect_success 'setup dir3' ' mkdir dir3 && : >dir3/untracked1 && diff --git a/wt-status.c b/wt-status.c index 284dc61..21c0d4d 100644 --- a/wt-status.c +++ b/wt-status.c @@ -913,8 +913,8 @@ static void wt_shortstatus_print_tracking(struct wt_status *s) if (s->is_initial) color_fprintf(s->fp, header_color, _("Initial commit on ")); if (!stat_tracking_info(branch, &num_ours, &num_theirs)) { - color_fprintf_ln(s->fp, branch_color_local, - "%s", branch_name); + color_fprintf(s->fp, branch_color_local, "%s", branch_name); + fputc(s->null_termination ? '\0' : '\n', s->fp); return; } @@ -938,7 +938,8 @@ static void wt_shortstatus_print_tracking(struct wt_status *s) color_fprintf(s->fp, branch_color_remote, "%d", num_theirs); } - color_fprintf_ln(s->fp, header_color, "]"); + color_fprintf(s->fp, header_color, "]"); + fputc(s->null_termination ? '\0' : '\n', s->fp); } void wt_shortstatus_print(struct wt_status *s, int show_branch)
-- 1.7.10.1.12.gd79f7ab