From: Rusty Russell Date: Thu, 1 Dec 2011 06:09:51 +0000 (+1030) Subject: opt: fix up outdated comments in documentation. X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=4ea280eb94ec5f2eef352066a94a160d9b8dd059 opt: fix up outdated comments in documentation. --- diff --git a/ccan/opt/opt.h b/ccan/opt/opt.h index 55a78d8f..e7896340 100644 --- a/ccan/opt/opt.h +++ b/ccan/opt/opt.h @@ -34,7 +34,7 @@ struct opt_table; { (names), OPT_CB_NOARG((cb), (arg)), { (arg) }, (desc) } /** - * OPT_WITH_ARG() - macro for initializing long and short option (with arg) + * OPT_WITH_ARG() - macro for initializing an opt_table entry (with arg) * @names: the option names eg. "--foo=", "-f" or "-f|--foo ". * @cb: the callback when the option is found (along with ). * @show: the callback to print the value in get_usage (or NULL) @@ -147,8 +147,9 @@ void opt_register_table(const struct opt_table *table, const char *desc); * where "type" is the type of the @arg argument. The first argument to the * @cb is the argument found on the commandline. * - * At least one of @longopt and @shortopt must be non-zero. If the - * @cb returns false, opt_parse() will stop parsing and return false. + * If the @cb returns non-NULL, opt_parse() will stop parsing, use the + * returned string to form an error message for errlog(), free() the + * string and return false. * * Example: * static char *explode(const char *optarg, void *unused) @@ -168,12 +169,15 @@ void opt_register_table(const struct opt_table *table, const char *desc); * @errlog: the function to print errors * * This iterates through the command line and calls callbacks registered with - * opt_register_table()/opt_register_arg()/opt_register_noarg(). If there - * are unknown options, missing arguments or a callback returns false, then - * an error message is printed and false is returned. + * opt_register_table()/opt_register_arg()/opt_register_noarg(). As this + * occurs successfully each option is removed from argc and argv. + * + * If there are unknown options, missing arguments or a callback + * returns false, then an error message is printed and false is + * returned: the erroneous option is not removed. * - * On success, argc and argv are adjusted so only the non-option elements - * remain, and true is returned. + * On success, argc and argv will contain only the non-option + * elements, and true is returned. * * Example: * if (!opt_parse(&argc, argv, opt_log_stderr)) {