X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fopt%2Fopt.h;h=c642ec6fafc85d1b87377458d69fa9e3d909101c;hb=bc6d22ecf820d0b4547ace17ff7e7ecebf0e415b;hp=690907e595eff6922690204eb4c76a6be3e59d8c;hpb=c7a7fc0a1771394534cafaa7c30aa215631efc82;p=ccan diff --git a/ccan/opt/opt.h b/ccan/opt/opt.h index 690907e5..c642ec6f 100644 --- a/ccan/opt/opt.h +++ b/ccan/opt/opt.h @@ -185,7 +185,7 @@ void opt_register_table(const struct opt_table *table, const char *desc); * string (or see opt_set_alloc) and return false. * * Example: - * static char *explode(const char *optarg, void *unused) + * static char *explode(const char *optarg, void *unused UNNEEDED) * { * errx(1, "BOOM! %s", optarg); * } @@ -286,6 +286,30 @@ bool opt_parse(int *argc, char *argv[], void (*errlog)(const char *fmt, ...)); bool opt_early_parse(int argc, char *argv[], void (*errlog)(const char *fmt, ...)); +/** + * opt_early_parse_incomplete - parse early arguments, ignoring unknown ones. + * @argc: argc + * @argv: argv array. + * @errlog: the function to print errors + * + * If you have plugins, you might need to do early parsing (eg. to find the + * plugin directory) but you don't know what options the plugins will want. + * + * Thus, this function is just like opt_early_parse, but ignores unknown options. + * + * Example: + * if (!opt_early_parse_incomplete(argc, argv, opt_log_stderr)) { + * printf("You screwed up, aborting!\n"); + * exit(1); + * } + * + * See Also: + * opt_early_parse() + */ +bool opt_early_parse_incomplete(int argc, char *argv[], + void (*errlog)(const char *fmt, ...)); + + /** * opt_free_table - reset the opt library. *