summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f265ccd)
raw | patch | inline | side by side (parent: f265ccd)
author | Jonas Fonseca <fonseca@diku.dk> | |
Sun, 18 Jan 2009 13:14:17 +0000 (14:14 +0100) | ||
committer | Jonas Fonseca <fonseca@diku.dk> | |
Tue, 3 Feb 2009 14:27:25 +0000 (15:27 +0100) |
tig.c | patch | blob | history |
index bc1dacf40b57071c4990e9885329aee9f0e42b9d..d6b9366e6323ebd73d3279e726b2c6cb6f3135c2 100644 (file)
--- a/tig.c
+++ b/tig.c
#define is_initial_commit() (!*opt_head_rev)
#define is_head_commit(rev) (!strcmp((rev), "HEAD") || !strcmp(opt_head_rev, (rev)))
-static enum request
-parse_options(int argc, const char *argv[], const char ***run_argv)
-{
- enum request request = REQ_VIEW_MAIN;
- const char *subcommand;
- bool seen_dashdash = FALSE;
- /* XXX: This is vulnerable to the user overriding options
- * required for the main view parser. */
- static const char *custom_argv[SIZEOF_ARG] = {
- "git", "log", "--no-color", "--pretty=raw", "--parents",
- "--topo-order", NULL
- };
- int i, j = 6;
-
- if (!isatty(STDIN_FILENO))
- return REQ_VIEW_PAGER;
-
- if (argc <= 1)
- return REQ_VIEW_MAIN;
-
- subcommand = argv[1];
- if (!strcmp(subcommand, "status")) {
- if (argc > 2)
- warn("ignoring arguments after `%s'", subcommand);
- return REQ_VIEW_STATUS;
-
- } else if (!strcmp(subcommand, "blame")) {
- if (argc <= 2 || argc > 4)
- die("invalid number of options to blame\n\n%s", usage);
-
- i = 2;
- if (argc == 4) {
- string_ncopy(opt_ref, argv[i], strlen(argv[i]));
- i++;
- }
-
- string_ncopy(opt_file, argv[i], strlen(argv[i]));
- return REQ_VIEW_BLAME;
-
- } else if (!strcmp(subcommand, "show")) {
- request = REQ_VIEW_DIFF;
-
- } else {
- subcommand = NULL;
- }
-
- if (subcommand) {
- custom_argv[1] = subcommand;
- j = 2;
- }
-
- for (i = 1 + !!subcommand; i < argc; i++) {
- const char *opt = argv[i];
-
- if (seen_dashdash || !strcmp(opt, "--")) {
- seen_dashdash = TRUE;
-
- } else if (!strcmp(opt, "-v") || !strcmp(opt, "--version")) {
- printf("tig version %s\n", TIG_VERSION);
- return REQ_NONE;
-
- } else if (!strcmp(opt, "-h") || !strcmp(opt, "--help")) {
- printf("%s\n", usage);
- return REQ_NONE;
- }
-
- custom_argv[j++] = opt;
- if (j >= ARRAY_SIZE(custom_argv))
- die("command too long");
- }
-
- custom_argv[j] = NULL;
- *run_argv = custom_argv;
-
- return request;
-}
-
/*
* Line-oriented content detection.
va_end(args);
}
+static enum request
+parse_options(int argc, const char *argv[], const char ***run_argv)
+{
+ enum request request = REQ_VIEW_MAIN;
+ const char *subcommand;
+ bool seen_dashdash = FALSE;
+ /* XXX: This is vulnerable to the user overriding options
+ * required for the main view parser. */
+ static const char *custom_argv[SIZEOF_ARG] = {
+ "git", "log", "--no-color", "--pretty=raw", "--parents",
+ "--topo-order", NULL
+ };
+ int i, j = 6;
+
+ if (!isatty(STDIN_FILENO))
+ return REQ_VIEW_PAGER;
+
+ if (argc <= 1)
+ return REQ_VIEW_MAIN;
+
+ subcommand = argv[1];
+ if (!strcmp(subcommand, "status")) {
+ if (argc > 2)
+ warn("ignoring arguments after `%s'", subcommand);
+ return REQ_VIEW_STATUS;
+
+ } else if (!strcmp(subcommand, "blame")) {
+ if (argc <= 2 || argc > 4)
+ die("invalid number of options to blame\n\n%s", usage);
+
+ i = 2;
+ if (argc == 4) {
+ string_ncopy(opt_ref, argv[i], strlen(argv[i]));
+ i++;
+ }
+
+ string_ncopy(opt_file, argv[i], strlen(argv[i]));
+ return REQ_VIEW_BLAME;
+
+ } else if (!strcmp(subcommand, "show")) {
+ request = REQ_VIEW_DIFF;
+
+ } else {
+ subcommand = NULL;
+ }
+
+ if (subcommand) {
+ custom_argv[1] = subcommand;
+ j = 2;
+ }
+
+ for (i = 1 + !!subcommand; i < argc; i++) {
+ const char *opt = argv[i];
+
+ if (seen_dashdash || !strcmp(opt, "--")) {
+ seen_dashdash = TRUE;
+
+ } else if (!strcmp(opt, "-v") || !strcmp(opt, "--version")) {
+ printf("tig version %s\n", TIG_VERSION);
+ return REQ_NONE;
+
+ } else if (!strcmp(opt, "-h") || !strcmp(opt, "--help")) {
+ printf("%s\n", usage);
+ return REQ_NONE;
+ }
+
+ custom_argv[j++] = opt;
+ if (j >= ARRAY_SIZE(custom_argv))
+ die("command too long");
+ }
+
+ custom_argv[j] = NULL;
+ *run_argv = custom_argv;
+
+ return request;
+}
+
int
main(int argc, const char *argv[])
{