]> git.ozlabs.org Git - ccan/blobdiff - ccan/opt/usage.c
opt: add opt_usage_exit_fail.
[ccan] / ccan / opt / usage.c
index b71fb334627f174fbc8bfd2022e87c0304d43fd8..26150ea8cd409e6c84d5a33067fd15932bccb4dc 100644 (file)
@@ -9,6 +9,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <stdarg.h>
 #include "private.h"
 
 /* We only use this for pointer comparisons. */
@@ -227,3 +228,17 @@ char *opt_usage(const char *argv0, const char *extra)
        ret[len] = '\0';
        return ret;
 }
+
+void opt_usage_exit_fail(const char *msg, ...)
+{
+       va_list ap;
+
+       if (opt_argv0)
+               fprintf(stderr, "%s: ", opt_argv0);
+       va_start(ap, msg);
+       vfprintf(stderr, msg, ap);
+       va_end(ap);
+       fprintf(stderr, "\n%s",
+               opt_usage(opt_argv0 ? opt_argv0 : "<program>", NULL));
+       exit(1);
+}