diff options
author | midipix <writeonce@midipix.org> | 2016-08-01 12:04:02 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-08-10 21:47:36 -0400 |
commit | 9b23a2dabd0c5cf84309b5d247cab05b77efa6dd (patch) | |
tree | a5316982e7c001e16564bbb1fe46fad9a9ac9f98 | |
parent | 83af1d349100c3cdf6455fab2887b0d93466594f (diff) | |
download | ptycon-9b23a2dabd0c5cf84309b5d247cab05b77efa6dd.tar.bz2 ptycon-9b23a2dabd0c5cf84309b5d247cab05b77efa6dd.tar.xz |
argv.h: error message formatting: handle lonely long options.
-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 ece92c7..31ca322 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); |