Mercurial > molko
annotate src/error.c @ 54:779352498a8a
make: beautify
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 18 Jan 2020 15:27:40 +0100 |
parents | 9d1421c09dfb |
children |
rev | line source |
---|---|
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * error.c -- error routines |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr> |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
19 #include <errno.h> |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <stdio.h> |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <stdlib.h> |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
22 #include <string.h> |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include "error.h" |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
25 #include "error_p.h" |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
26 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
27 #include <SDL.h> |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 static char buffer[2048]; |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 const char * |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 error(void) |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 { |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 return buffer; |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 } |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
37 bool |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
38 error_errno(void) |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
39 { |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
40 error_printf("%s", strerror(errno)); |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
41 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
42 return false; |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
43 } |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
44 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
45 bool |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 error_printf(const char *fmt, ...) |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 { |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 va_list ap; |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 va_start(ap, fmt); |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 error_vprintf(fmt, ap); |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 va_end(ap); |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
53 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
54 return false; |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 } |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
57 bool |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 error_vprintf(const char *fmt, va_list ap) |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 { |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 vsnprintf(buffer, sizeof (buffer), fmt, ap); |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
61 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
62 return false; |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
63 } |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
64 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
65 noreturn void |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
66 error_fatal(void) |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
67 { |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
68 fprintf(stderr, "%s\n", buffer); |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
69 exit(1); |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 } |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 noreturn void |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 error_fatalf(const char *fmt, ...) |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 { |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 va_list ap; |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 va_start(ap, fmt); |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 error_vfatalf(fmt, ap); |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 va_end(ap); |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 } |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 noreturn void |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 error_vfatalf(const char *fmt, va_list ap) |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 { |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
85 fprintf(stderr, fmt, ap); |
35
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 exit(1); |
bdb51709fd55
core: implement error functions, closes #2453
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 } |
39
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
88 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
89 /* private: error_p.h */ |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
90 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
91 bool |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
92 error_sdl(void) |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
93 { |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
94 error_printf("%s", SDL_GetError()); |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
95 |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
96 return false; |
9d1421c09dfb
core: add more utilities to improve code simplicity
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
97 } |