aboutsummaryrefslogtreecommitdiff
path: root/libbb/usage.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libbb/usage.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/libbb/usage.c b/libbb/usage.c
deleted file mode 100644
index 86bf68e21..000000000
--- a/libbb/usage.c
+++ /dev/null
@@ -1,81 +0,0 @@
1/*
2 * GIT - The information manager from hell
3 *
4 * Copyright (C) Linus Torvalds, 2005
5 */
6#include "libbb.h"
7#include "git.h"
8
9static void report(const char *prefix, const char *err, va_list params)
10{
11 char msg[1024];
12 vsnprintf(msg, sizeof(msg), err, params);
13 fprintf(stderr, "%s%s\n", prefix, msg);
14}
15
16static NORETURN void usage_builtin(const char *err)
17{
18 fprintf(stderr, "usage: %s\n", err);
19 exit(129);
20}
21
22static NORETURN void die_builtin(const char *err, va_list params)
23{
24 report("fatal: ", err, params);
25 exit(128);
26}
27
28static void error_builtin(const char *err, va_list params)
29{
30 report("error: ", err, params);
31}
32
33static void warn_builtin(const char *warn, va_list params)
34{
35 report("warning: ", warn, params);
36}
37
38/* If we are in a dlopen()ed .so write to a global variable would segfault
39 * (ugh), so keep things static. */
40static void (*usage_routine)(const char *err) NORETURN = usage_builtin;
41static void (*die_routine)(const char *err, va_list params) NORETURN = die_builtin;
42static void (*error_routine)(const char *err, va_list params) = error_builtin;
43static void (*warn_routine)(const char *err, va_list params) = warn_builtin;
44
45void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN)
46{
47 die_routine = routine;
48}
49
50void usage(const char *err)
51{
52 usage_routine(err);
53}
54
55void die(const char *err, ...)
56{
57 va_list params;
58
59 va_start(params, err);
60 die_routine(err, params);
61 va_end(params);
62}
63
64int error(const char *err, ...)
65{
66 va_list params;
67
68 va_start(params, err);
69 error_routine(err, params);
70 va_end(params);
71 return -1;
72}
73
74void warning(const char *warn, ...)
75{
76 va_list params;
77
78 va_start(params, warn);
79 warn_routine(warn, params);
80 va_end(params);
81}