1 /* ISC license. */
2 
3 /* MT-unsafe */
4 
5 #include <unistd.h>
6 #include <errno.h>
7 #include <skalibs/buffer.h>
8 #include <skalibs/strerr.h>
9 
strerr_warn(char const * x1,char const * x2,char const * x3,char const * x4,char const * x5,char const * x6,char const * x7,char const * x8,char const * x9,char const * x10,char const * se)10 void strerr_warn (char const *x1, char const *x2, char const *x3, char const *x4, char const *x5, char const *x6, char const *x7, char const *x8, char const *x9, char const *x10, char const *se)
11 {
12   int e = errno ;
13   if (x1) buffer_puts(buffer_2, x1) ;
14   if (x2) buffer_puts(buffer_2, x2) ;
15   if (x3) buffer_puts(buffer_2, x3) ;
16   if (x4) buffer_puts(buffer_2, x4) ;
17   if (x5) buffer_puts(buffer_2, x5) ;
18   if (x6) buffer_puts(buffer_2, x6) ;
19   if (x7) buffer_puts(buffer_2, x7) ;
20   if (x8) buffer_puts(buffer_2, x8) ;
21   if (x9) buffer_puts(buffer_2, x9) ;
22   if (x10) buffer_puts(buffer_2, x10) ;
23   if (se) buffer_puts(buffer_2, se) ;
24   buffer_putflush(buffer_2, "\n", 1) ;
25   errno = e ;
26 }
27 
strerr_die(int e,char const * x1,char const * x2,char const * x3,char const * x4,char const * x5,char const * x6,char const * x7,char const * x8,char const * x9,char const * x10,char const * se)28 void strerr_die (int e, char const *x1, char const *x2, char const *x3, char const *x4, char const *x5, char const *x6, char const *x7, char const *x8, char const *x9, char const *x10, char const *se)
29 {
30   strerr_warn(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, se) ;
31   _exit(e) ;
32 
33  /* No, OpenBSD, this noreturn function does NOT return.
34     Please learn what _exit() does. */
35 }
36