aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael J Gruber <git@drmicha.warpmail.net>2009-12-05 16:04:38 +0100
committerJunio C Hamano <gitster@pobox.com>2009-12-05 09:27:56 -0800
commit3fe2a894e98566dd91e69982552454cfb381cf24 (patch)
tree5eb7e8537e42f1045d40ab4d980cbac258daf882
parent84dbe7b867cfaaa929ed1941f930d564514ae714 (diff)
downloadgit-3fe2a894e98566dd91e69982552454cfb381cf24.tar.gz
git-3fe2a894e98566dd91e69982552454cfb381cf24.tar.xz
status -s: obey color.status
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>
-rw-r--r--builtin-commit.c4
-rw-r--r--wt-status.c21
2 files changed, 18 insertions, 7 deletions
diff --git a/builtin-commit.c b/builtin-commit.c
index 8411236fd..07cc76c04 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -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:
diff --git a/wt-status.c b/wt-status.c
index 8ef824e0d..696c6b0bf 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -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);
}
}
@@ -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)
@@ -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);
}
}