X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=lopsub.c;h=a9e401f259f63422e3db094080cc66ecb808c694;hb=b755936434b8eb302f0e990b976350c305f6706d;hp=44abc93348c7b6e4120caeeea620c0f6504d46bb;hpb=cd0ae8bc3fd6cd643ef67f068a00d7f91927b0ea;p=lopsub.git diff --git a/lopsub.c b/lopsub.c index 44abc93..a9e401f 100644 --- a/lopsub.c +++ b/lopsub.c @@ -155,7 +155,7 @@ static int xrealloc(void *p, size_t size) return 0; } -/* Print a formated message to a dynamically allocated string. */ +/* Print a formatted message to a dynamically allocated string. */ __attribute__ ((format (printf, 2, 0))) static int xvasprintf(char **result, const char *fmt, va_list ap) { @@ -724,9 +724,11 @@ int lls_check_arg_count(const struct lls_parse_result *lpr, { if (errctx) *errctx = NULL; + assert(min_argc <= max_argc); if (lpr->num_inputs < min_argc) { - xasprintf(errctx, "at least %u non-option args required, " - "%u given", min_argc, lpr->num_inputs); + xasprintf(errctx, "%s %u non-option args required, %u given", + min_argc < max_argc? "at least" : "exactly", + min_argc, lpr->num_inputs); return -E_LLS_BAD_ARG_COUNT; } if (lpr->num_inputs > max_argc) { @@ -734,8 +736,10 @@ int lls_check_arg_count(const struct lls_parse_result *lpr, xasprintf(errctx, "no non-option args allowed, " "%u given", lpr->num_inputs); else - xasprintf(errctx, "at most %u non-option args allowed, " - "%u given", max_argc, lpr->num_inputs); + xasprintf(errctx, "%s %u non-option args allowed, " + "%u given", min_argc < max_argc? + "at most" : "exactly", + max_argc, lpr->num_inputs); return -E_LLS_BAD_ARG_COUNT; } return 1;