diff options
author | Jeff King <peff@peff.net> | 2006-09-08 04:05:34 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-09-08 16:46:35 -0700 |
commit | c91f0d92efb36d7b349f586cafafaf0e6ac3f5b2 (patch) | |
tree | 9f328dd9bbc033e3c3d50a43d0a08ebfe6bd0d79 /builtin-runstatus.c | |
parent | 7c92fe0eaa4fb89e27fa3617b9ae52f20b511573 (diff) | |
download | git-c91f0d92efb36d7b349f586cafafaf0e6ac3f5b2.tar.gz git-c91f0d92efb36d7b349f586cafafaf0e6ac3f5b2.tar.xz |
git-commit.sh: convert run_status to a C builtin
This creates a new git-runstatus which should do roughly the same thing
as the run_status function from git-commit.sh. Except for color support,
the main focus has been to keep the output identical, so that it can be
verified as correct and then used as a C platform for other improvements to
the status printing code.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'builtin-runstatus.c')
-rw-r--r-- | builtin-runstatus.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/builtin-runstatus.c b/builtin-runstatus.c new file mode 100644 index 000000000..7979d6129 --- /dev/null +++ b/builtin-runstatus.c @@ -0,0 +1,34 @@ +#include "wt-status.h" +#include "cache.h" + +extern int wt_status_use_color; + +static const char runstatus_usage[] = +"git-runstatus [--color|--nocolor] [--amend] [--verbose]"; + +int cmd_runstatus(int argc, const char **argv, const char *prefix) +{ + struct wt_status s; + int i; + + git_config(git_status_config); + wt_status_prepare(&s); + + for (i = 1; i < argc; i++) { + if (!strcmp(argv[i], "--color")) + wt_status_use_color = 1; + else if (!strcmp(argv[i], "--nocolor")) + wt_status_use_color = 0; + else if (!strcmp(argv[i], "--amend")) { + s.amend = 1; + s.reference = "HEAD^1"; + } + else if (!strcmp(argv[i], "--verbose")) + s.verbose = 1; + else + usage(runstatus_usage); + } + + wt_status_print(&s); + return s.commitable ? 0 : 1; +} |