diff options
Diffstat (limited to 'strerr_die.c')
-rw-r--r-- | strerr_die.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/strerr_die.c b/strerr_die.c new file mode 100644 index 0000000..f226b80 --- /dev/null +++ b/strerr_die.c | |||
@@ -0,0 +1,33 @@ | |||
1 | /* Public domain. */ | ||
2 | |||
3 | #include <unistd.h> | ||
4 | #include "buffer.h" | ||
5 | #include "strerr.h" | ||
6 | |||
7 | void strerr_warn(const char *x1,const char *x2,const char *x3,const char *x4,const char *x5,const char *x6,const struct strerr *se) | ||
8 | { | ||
9 | strerr_sysinit(); | ||
10 | |||
11 | if (x1) buffer_puts(buffer_2,x1); | ||
12 | if (x2) buffer_puts(buffer_2,x2); | ||
13 | if (x3) buffer_puts(buffer_2,x3); | ||
14 | if (x4) buffer_puts(buffer_2,x4); | ||
15 | if (x5) buffer_puts(buffer_2,x5); | ||
16 | if (x6) buffer_puts(buffer_2,x6); | ||
17 | |||
18 | while(se) { | ||
19 | if (se->x) buffer_puts(buffer_2,se->x); | ||
20 | if (se->y) buffer_puts(buffer_2,se->y); | ||
21 | if (se->z) buffer_puts(buffer_2,se->z); | ||
22 | se = se->who; | ||
23 | } | ||
24 | |||
25 | buffer_puts(buffer_2,"\n"); | ||
26 | buffer_flush(buffer_2); | ||
27 | } | ||
28 | |||
29 | void strerr_die(int e,const char *x1,const char *x2,const char *x3,const char *x4,const char *x5,const char *x6,const struct strerr *se) | ||
30 | { | ||
31 | strerr_warn(x1,x2,x3,x4,x5,x6,se); | ||
32 | _exit(e); | ||
33 | } | ||