X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fopt%2Fopt.h;h=690907e595eff6922690204eb4c76a6be3e59d8c;hb=3e1be50f117fee7d3bc6c4a56e71c15495f3bcad;hp=727dacd0f148594a87c1b465c8180438b778a349;hpb=63b0055673d2c55ff90f8b7bd8a7c5fe30f83269;p=ccan diff --git a/ccan/opt/opt.h b/ccan/opt/opt.h index 727dacd0..690907e5 100644 --- a/ccan/opt/opt.h +++ b/ccan/opt/opt.h @@ -372,6 +372,22 @@ char *opt_invalid_argument(const char *arg); */ char *opt_usage(const char *argv0, const char *extra); +/** + * opt_usage_exit_fail - complain about bad usage to stderr, exit with status 1. + * @msg...: printf-style message to output. + * + * This prints argv[0] (if opt_parse has been called), a colon, then + * the message to stderr (just like errx()). Then it prints out the + * usage message, taken from any registered option which uses + * opt_usage_and_exit() as described in opt_usage(argv0, NULL) above. + * Then it exits with status 1. + * + * Example: + * if (argc != 5) + * opt_usage_exit_fail("Need 5 arguments, only got %u", argc); + */ +void opt_usage_exit_fail(const char *msg, ...) NORETURN; + /** * opt_hidden - string for undocumented options. *