Git fork

Merge branch 'jk/status-z-short-fix' into maint-2.51

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
··· 2051 2051 static void wt_shortstatus_other(struct string_list_item *it, 2052 2052 struct wt_status *s, const char *sign) 2053 2053 { 2054 + color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign); 2054 2055 if (s->null_termination) { 2055 - fprintf(s->fp, "%s %s%c", sign, it->string, 0); 2056 + fprintf(s->fp, " %s%c", it->string, 0); 2056 2057 } else { 2057 2058 struct strbuf onebuf = STRBUF_INIT; 2058 2059 const char *one; 2059 2060 one = quote_path(it->string, s->prefix, &onebuf, QUOTE_PATH_QUOTE_SP); 2060 - color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign); 2061 2061 fprintf(s->fp, " %s\n", one); 2062 2062 strbuf_release(&onebuf); 2063 2063 }