Git fork

Merge branch 'jk/status-z-short-fix'

The "--short" option of "git status" that meant output for humans
and "-z" option to show NUL delimited output format did not mix
well, and colored some but not all things. The command has been
updated to color all elements consistently in such a case.

* jk/status-z-short-fix:
status: make coloring of "-z --short" consistent

+13 -2
+11
t/t7508-status.sh
··· 717 717 718 718 ' 719 719 720 + test_expect_success TTY 'status -s keeps colors with -z' ' 721 + test_when_finished "rm -f output.*" && 722 + test_terminal git status -s -z >output.raw && 723 + # convert back to newlines to avoid portability issues with 724 + # test_decode_color and test_cmp, and to let us use the same expected 725 + # output as earlier tests 726 + tr "\0" "\n" <output.raw >output.nl && 727 + test_decode_color <output.nl >output && 728 + test_cmp expect output 729 + ' 730 + 720 731 cat >expect <<\EOF 721 732 ## <YELLOW>main<RESET>...<CYAN>upstream<RESET> [ahead <YELLOW>1<RESET>, behind <CYAN>2<RESET>] 722 733 <RED>M<RESET> dir1/modified
+2 -2
wt-status.c
··· 2042 2042 static void wt_shortstatus_other(struct string_list_item *it, 2043 2043 struct wt_status *s, const char *sign) 2044 2044 { 2045 + color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign); 2045 2046 if (s->null_termination) { 2046 - fprintf(s->fp, "%s %s%c", sign, it->string, 0); 2047 + fprintf(s->fp, " %s%c", it->string, 0); 2047 2048 } else { 2048 2049 struct strbuf onebuf = STRBUF_INIT; 2049 2050 const char *one; 2050 2051 one = quote_path(it->string, s->prefix, &onebuf, QUOTE_PATH_QUOTE_SP); 2051 - color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign); 2052 2052 fprintf(s->fp, " %s\n", one); 2053 2053 strbuf_release(&onebuf); 2054 2054 }