Mercurial > molko
comparison src/core/error.c @ 95:e82eca4f8606
core: simplify error/panic routines
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 30 Mar 2020 14:07:21 +0200 |
parents | 52792b863ff7 |
children |
comparison
equal
deleted
inserted
replaced
94:ed72843a7194 | 95:e82eca4f8606 |
---|---|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 */ | 17 */ |
18 | 18 |
19 #include <assert.h> | |
19 #include <errno.h> | 20 #include <errno.h> |
20 #include <stdio.h> | 21 #include <stdio.h> |
21 #include <stdlib.h> | 22 #include <stdlib.h> |
22 #include <string.h> | 23 #include <string.h> |
23 | 24 |
43 } | 44 } |
44 | 45 |
45 bool | 46 bool |
46 error_printf(const char *fmt, ...) | 47 error_printf(const char *fmt, ...) |
47 { | 48 { |
49 assert(fmt); | |
50 | |
48 va_list ap; | 51 va_list ap; |
49 | 52 |
50 va_start(ap, fmt); | 53 va_start(ap, fmt); |
51 error_vprintf(fmt, ap); | 54 error_vprintf(fmt, ap); |
52 va_end(ap); | 55 va_end(ap); |
55 } | 58 } |
56 | 59 |
57 bool | 60 bool |
58 error_vprintf(const char *fmt, va_list ap) | 61 error_vprintf(const char *fmt, va_list ap) |
59 { | 62 { |
63 assert(fmt); | |
64 | |
60 vsnprintf(buffer, sizeof (buffer), fmt, ap); | 65 vsnprintf(buffer, sizeof (buffer), fmt, ap); |
61 | 66 |
62 return false; | 67 return false; |
63 } | |
64 | |
65 noreturn void | |
66 error_fatal(void) | |
67 { | |
68 fprintf(stderr, "%s\n", buffer); | |
69 exit(1); | |
70 } | |
71 | |
72 noreturn void | |
73 error_fatalf(const char *fmt, ...) | |
74 { | |
75 va_list ap; | |
76 | |
77 va_start(ap, fmt); | |
78 error_vfatalf(fmt, ap); | |
79 va_end(ap); | |
80 } | |
81 | |
82 noreturn void | |
83 error_vfatalf(const char *fmt, va_list ap) | |
84 { | |
85 fprintf(stderr, fmt, ap); | |
86 exit(1); | |
87 } | 68 } |
88 | 69 |
89 /* private: error_p.h */ | 70 /* private: error_p.h */ |
90 | 71 |
91 bool | 72 bool |