diff options
author | René Scharfe <l.s.r@web.de> | 2015-11-17 13:25:14 +0300 |
---|---|---|
committer | Jeff King <peff@peff.net> | 2015-11-20 16:02:07 +0300 |
commit | ac20ff6daa818b3dad99368dfbc123dcf81e6824 (patch) | |
tree | e473f9fd97a5587a9bfc7644213071ec9de948be | |
parent | 0c83680e9c047170614fb08ef222ea4f460e514d (diff) |
parse-options: deduplicate parse_options_usage() calls
Avoid long lines and repeating parse_options_usage() calls with their
duplicate parameters by providing labels with speaking names to jump to.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
-rw-r--r-- | parse-options.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/parse-options.c b/parse-options.c index 3eceba4463..f0b6d9b0c7 100644 --- a/parse-options.c +++ b/parse-options.c @@ -435,6 +435,7 @@ int parse_options_step(struct parse_opt_ctx_t *ctx, const char * const usagestr[]) { int internal_help = !(ctx->flags & PARSE_OPT_NO_INTERNAL_HELP); + int err = 0; /* we must reset ->opt, unknown short option leave it dangling */ ctx->opt = NULL; @@ -454,10 +455,10 @@ int parse_options_step(struct parse_opt_ctx_t *ctx, if (arg[1] != '-') { ctx->opt = arg + 1; if (internal_help && *ctx->opt == 'h') - return parse_options_usage(ctx, usagestr, options, 0); + goto show_usage; switch (parse_short_opt(ctx, options)) { case -1: - return parse_options_usage(ctx, usagestr, options, 1); + goto show_usage_error; case -2: if (ctx->opt) check_typos(arg + 1, options); @@ -467,10 +468,10 @@ int parse_options_step(struct parse_opt_ctx_t *ctx, check_typos(arg + 1, options); while (ctx->opt) { if (internal_help && *ctx->opt == 'h') - return parse_options_usage(ctx, usagestr, options, 0); + goto show_usage; switch (parse_short_opt(ctx, options)) { case -1: - return parse_options_usage(ctx, usagestr, options, 1); + goto show_usage_error; case -2: /* fake a short option thing to hide the fact that we may have * started to parse aggregated stuff @@ -496,10 +497,10 @@ int parse_options_step(struct parse_opt_ctx_t *ctx, if (internal_help && !strcmp(arg + 2, "help-all")) return usage_with_options_internal(ctx, usagestr, options, 1, 0); if (internal_help && !strcmp(arg + 2, "help")) - return parse_options_usage(ctx, usagestr, options, 0); + goto show_usage; switch (parse_long_opt(ctx, arg + 2, options)) { case -1: - return parse_options_usage(ctx, usagestr, options, 1); + goto show_usage_error; case -2: goto unknown; } @@ -511,6 +512,11 @@ unknown: ctx->opt = NULL; } return PARSE_OPT_DONE; + + show_usage_error: + err = 1; + show_usage: + return parse_options_usage(ctx, usagestr, options, err); } int parse_options_end(struct parse_opt_ctx_t *ctx) |