summary refs log tree commit
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-12-15 12:24:33 +0900
committerJunio C Hamano <gitster@pobox.com>2018-12-15 12:24:33 +0900
commitbf29f074ed7019abb53398c4cd5659d9f939d9a8 (patch)
tree0980dba5e1b347ef0c2fad32cb36923dd64b83c5
parent6be6e6629fe9da1bfef904d2615536ad0db14e1d (diff)
parenta92ec7efe0ad25f1c2047230c0324dcb54ce1cfc (diff)
Portability fix for a recent update to parse-options API.

* nd/show-gitcomp-compilation-fix:
  parse-options: fix SunCC compiler warning
-rw-r--r--builtin/blame.c2
-rw-r--r--builtin/shortlog.c2
-rw-r--r--builtin/update-index.c2
-rw-r--r--parse-options.c4
-rw-r--r--parse-options.h1
5 files changed, 10 insertions, 1 deletions
diff --git a/builtin/blame.c b/builtin/blame.c
index 06a7163ffe..6d798f9939 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -850,6 +850,8 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
                 case PARSE_OPT_HELP:
                 case PARSE_OPT_ERROR:
                         exit(129);
+                case PARSE_OPT_COMPLETE:
+                        exit(0);
                 case PARSE_OPT_DONE:
                         if (ctx.argv[0])
                                 dashdash_pos = ctx.cpidx;
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 88f88e97b2..65cd41392c 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -287,6 +287,8 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
                 case PARSE_OPT_HELP:
                 case PARSE_OPT_ERROR:
                         exit(129);
+                case PARSE_OPT_COMPLETE:
+                        exit(0);
                 case PARSE_OPT_DONE:
                         goto parse_done;
                 }
diff --git a/builtin/update-index.c b/builtin/update-index.c
index 31e7cce301..e19da77edc 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -1086,6 +1086,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
                 case PARSE_OPT_HELP:
                 case PARSE_OPT_ERROR:
                         exit(129);
+                case PARSE_OPT_COMPLETE:
+                        exit(0);
                 case PARSE_OPT_NON_OPTION:
                 case PARSE_OPT_DONE:
                 {
diff --git a/parse-options.c b/parse-options.c
index 3b874a83a0..6932eaff61 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -516,7 +516,7 @@ static int show_gitcomp(struct parse_opt_ctx_t *ctx,
         show_negated_gitcomp(original_opts, -1);
         show_negated_gitcomp(original_opts, nr_noopts);
         fputc('\n', stdout);
-        exit(0);
+        return PARSE_OPT_COMPLETE;
 }
 
 static int usage_with_options_internal(struct parse_opt_ctx_t *,
@@ -638,6 +638,8 @@ int parse_options(int argc, const char **argv, const char *prefix,
         case PARSE_OPT_HELP:
         case PARSE_OPT_ERROR:
                 exit(129);
+        case PARSE_OPT_COMPLETE:
+                exit(0);
         case PARSE_OPT_NON_OPTION:
         case PARSE_OPT_DONE:
                 break;
diff --git a/parse-options.h b/parse-options.h
index 6c4fe2016d..a650a7d220 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -208,6 +208,7 @@ extern int opterror(const struct option *opt, const char *reason, int flags);
 /*----- incremental advanced APIs -----*/
 
 enum {
+        PARSE_OPT_COMPLETE = -2,
         PARSE_OPT_HELP = -1,
         PARSE_OPT_DONE,
         PARSE_OPT_NON_OPTION,