summaryrefslogtreecommitdiff
path: root/builtin-runstatus.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2006-09-08 04:05:34 -0400
committerJunio C Hamano <junkio@cox.net>2006-09-08 16:46:35 -0700
commitc91f0d92efb36d7b349f586cafafaf0e6ac3f5b2 (patch)
tree9f328dd9bbc033e3c3d50a43d0a08ebfe6bd0d79 /builtin-runstatus.c
parent7c92fe0eaa4fb89e27fa3617b9ae52f20b511573 (diff)
downloadgit-c91f0d92efb36d7b349f586cafafaf0e6ac3f5b2.tar.gz
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.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/builtin-runstatus.c b/builtin-runstatus.c
new file mode 100644
index 0000000000..7979d61291
--- /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;
+}