diff options
author | midipix <writeonce@midipix.org> | 2016-08-01 12:04:02 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-11-10 23:35:51 -0500 |
commit | 39741de05eaf8b762d7ce26182109f0b5b515937 (patch) | |
tree | 0ada77d12d60e507b987c8585f66a98796371889 /src | |
parent | 3ff743450a57083ed2087d935d5f4fa5d54a9257 (diff) | |
download | perk-39741de05eaf8b762d7ce26182109f0b5b515937.tar.bz2 perk-39741de05eaf8b762d7ce26182109f0b5b515937.tar.xz |
argv.h: error message formatting: handle lonely long options.
Diffstat (limited to 'src')
-rw-r--r-- | src/internal/argv/argv.h | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/internal/argv/argv.h b/src/internal/argv/argv.h index d3af384..69298e6 100644 --- a/src/internal/argv/argv.h +++ b/src/internal/argv/argv.h @@ -497,6 +497,11 @@ static const char * argv_program_name(const char * program_path) static void argv_show_error(struct argv_ctx * ctx) { + char opt_short_name[2] = {0,0}; + + if (ctx->erropt && ctx->erropt->short_name) + opt_short_name[0] = ctx->erropt->short_name; + fprintf(stderr,"%s: error: ",ctx->program); switch (ctx->errcode) { @@ -509,21 +514,21 @@ static void argv_show_error(struct argv_ctx * ctx) break; case ARGV_ERROR_OPTARG_NONE: - fprintf(stderr,"'%s' is not a valid option value for [%s%c%s%s%s] " + fprintf(stderr,"'%s' is not a valid option value for [%s%s%s%s%s] " "(option values may not be specified)\n", ctx->errch, - ctx->erropt->short_name ? "-" : "", - ctx->erropt->short_name, - ctx->erropt->short_name ? "," : "", + opt_short_name[0] ? "-" : "", + opt_short_name, + opt_short_name[0] ? "," : "", ctx->erropt->long_name ? "--" : "", ctx->erropt->long_name); break; case ARGV_ERROR_OPTARG_REQUIRED: - fprintf(stderr,"option [%s%c%s%s%s] requires %s %s%s%s\n", - ctx->erropt->short_name ? "-" : "", - ctx->erropt->short_name, - ctx->erropt->short_name ? "," : "", + fprintf(stderr,"option [%s%s%s%s%s] requires %s %s%s%s\n", + opt_short_name[0] ? "-" : "", + opt_short_name, + opt_short_name[0] ? "," : "", ctx->erropt->long_name ? "--" : "", ctx->erropt->long_name, ctx->erropt->paradigm ? "one of the following values:" : "a value", @@ -533,11 +538,11 @@ static void argv_show_error(struct argv_ctx * ctx) break; case ARGV_ERROR_OPTARG_PARADIGM: - fprintf(stderr,"'%s' is not a valid option value for [%s%c%s%s%s]={%s}\n", + fprintf(stderr,"'%s' is not a valid option value for [%s%s%s%s%s]={%s}\n", ctx->errch, - ctx->erropt->short_name ? "-" : "", - ctx->erropt->short_name, - ctx->erropt->short_name ? "," : "", + opt_short_name[0] ? "-" : "", + opt_short_name, + opt_short_name[0] ? "," : "", ctx->erropt->long_name ? "--" : "", ctx->erropt->long_name, ctx->erropt->paradigm); |