Skip to content

Commit

Permalink
status -s: obey color.status
Browse files Browse the repository at this point in the history
Make the short version of status obey the color.status boolean. We color
the status letters only, because they carry the state information and are
potentially colored differently, such as for a file with staged changes
as well as changes in the worktree against the index.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael J Gruber authored and Junio C Hamano committed Dec 5, 2009
1 parent 84dbe7b commit 3fe2a89
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
4 changes: 4 additions & 0 deletions builtin-commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -968,6 +968,10 @@ int cmd_status(int argc, const char **argv, const char *prefix)
case STATUS_FORMAT_SHORT:
if (s.relative_paths)
s.prefix = prefix;
if (s.use_color == -1)
s.use_color = git_use_color_default;
if (diff_use_color_default == -1)
diff_use_color_default = git_use_color_default;
wt_shortstatus_print(&s, null_termination);
break;
case STATUS_FORMAT_PORCELAIN:
Expand Down
21 changes: 14 additions & 7 deletions wt-status.c
Original file line number Diff line number Diff line change
Expand Up @@ -608,14 +608,14 @@ static void wt_shortstatus_unmerged(int null_termination, struct string_list_ite
case 6: how = "AA"; break; /* both added */
case 7: how = "UU"; break; /* both modified */
}
printf("%s ", how);
color_fprintf(s->fp, color(WT_STATUS_UNMERGED, s), "%s", how);
if (null_termination) {
fprintf(stdout, "%s%c", it->string, 0);
fprintf(stdout, " %s%c", it->string, 0);
} else {
struct strbuf onebuf = STRBUF_INIT;
const char *one;
one = quote_path(it->string, -1, &onebuf, s->prefix);
printf("%s\n", one);
printf(" %s\n", one);
strbuf_release(&onebuf);
}
}
Expand All @@ -625,9 +625,15 @@ static void wt_shortstatus_status(int null_termination, struct string_list_item
{
struct wt_status_change_data *d = it->util;

printf("%c%c ",
!d->index_status ? ' ' : d->index_status,
!d->worktree_status ? ' ' : d->worktree_status);
if (d->index_status)
color_fprintf(s->fp, color(WT_STATUS_UPDATED, s), "%c", d->index_status);
else
putchar(' ');
if (d->worktree_status)
color_fprintf(s->fp, color(WT_STATUS_CHANGED, s), "%c", d->worktree_status);
else
putchar(' ');
putchar(' ');
if (null_termination) {
fprintf(stdout, "%s%c", it->string, 0);
if (d->head_path)
Expand Down Expand Up @@ -655,7 +661,8 @@ static void wt_shortstatus_untracked(int null_termination, struct string_list_it
struct strbuf onebuf = STRBUF_INIT;
const char *one;
one = quote_path(it->string, -1, &onebuf, s->prefix);
printf("?? %s\n", one);
color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "??");
printf(" %s\n", one);
strbuf_release(&onebuf);
}
}
Expand Down

0 comments on commit 3fe2a89

Please sign in to comment.