X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=usage.c;h=4dc5c77633747e0c2b3a4d04fddbd043f8f49e1e;hb=10e8d68820db9c7b6412d5a553a93fd200388f30;hp=52c2e960560531b62a28a8a716e531093fd5e8a7;hpb=bc1f262d67cbe1c736c5dca911f6f085f47ac9bb;p=git.git diff --git a/usage.c b/usage.c index 52c2e9605..4dc5c7763 100644 --- a/usage.c +++ b/usage.c @@ -29,12 +29,17 @@ static void error_builtin(const char *err, va_list params) report("error: ", err, params); } +static void warn_builtin(const char *warn, va_list params) +{ + report("warning: ", warn, params); +} /* If we are in a dlopen()ed .so write to a global variable would segfault * (ugh), so keep things static. */ static void (*usage_routine)(const char *err) NORETURN = usage_builtin; static void (*die_routine)(const char *err, va_list params) NORETURN = die_builtin; static void (*error_routine)(const char *err, va_list params) = error_builtin; +static void (*warn_routine)(const char *err, va_list params) = warn_builtin; void set_usage_routine(void (*routine)(const char *err) NORETURN) { @@ -51,6 +56,11 @@ void set_error_routine(void (*routine)(const char *err, va_list params)) error_routine = routine; } +void set_warn_routine(void (*routine)(const char *warn, va_list params)) +{ + warn_routine = routine; +} + void usage(const char *err) { @@ -75,3 +85,12 @@ int error(const char *err, ...) va_end(params); return -1; } + +void warn(const char *warn, ...) +{ + va_list params; + + va_start(params, warn); + warn_routine(warn, params); + va_end(params); +}