summaryrefslogtreecommitdiff
path: root/strerr.h
diff options
context:
space:
mode:
Diffstat (limited to 'strerr.h')
-rw-r--r--strerr.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/strerr.h b/strerr.h
new file mode 100644
index 0000000..21d812d
--- /dev/null
+++ b/strerr.h
@@ -0,0 +1,80 @@
1/* Public domain. */
2
3#ifndef STRERR_H
4#define STRERR_H
5
6struct strerr {
7 struct strerr *who;
8 const char *x;
9 const char *y;
10 const char *z;
11} ;
12
13extern struct strerr strerr_sys;
14extern void strerr_sysinit(void);
15
16extern const char *strerr(const struct strerr *);
17extern void strerr_warn(const char *,const char *,const char *,const char *,const char *,const char *,const struct strerr *);
18extern void strerr_die(int,const char *,const char *,const char *,const char *,const char *,const char *,const struct strerr *);
19
20#define STRERR(r,se,a) \
21{ se.who = 0; se.x = a; se.y = 0; se.z = 0; return r; }
22
23#define STRERR_SYS(r,se,a) \
24{ se.who = &strerr_sys; se.x = a; se.y = 0; se.z = 0; return r; }
25#define STRERR_SYS3(r,se,a,b,c) \
26{ se.who = &strerr_sys; se.x = a; se.y = b; se.z = c; return r; }
27
28#define strerr_warn6(x1,x2,x3,x4,x5,x6,se) \
29strerr_warn((x1),(x2),(x3),(x4),(x5),(x6),(se))
30#define strerr_warn5(x1,x2,x3,x4,x5,se) \
31strerr_warn((x1),(x2),(x3),(x4),(x5),0,(se))
32#define strerr_warn4(x1,x2,x3,x4,se) \
33strerr_warn((x1),(x2),(x3),(x4),0,0,(se))
34#define strerr_warn3(x1,x2,x3,se) \
35strerr_warn((x1),(x2),(x3),0,0,0,(se))
36#define strerr_warn2(x1,x2,se) \
37strerr_warn((x1),(x2),0,0,0,0,(se))
38#define strerr_warn1(x1,se) \
39strerr_warn((x1),0,0,0,0,0,(se))
40
41#define strerr_die6(e,x1,x2,x3,x4,x5,x6,se) \
42strerr_die((e),(x1),(x2),(x3),(x4),(x5),(x6),(se))
43#define strerr_die5(e,x1,x2,x3,x4,x5,se) \
44strerr_die((e),(x1),(x2),(x3),(x4),(x5),0,(se))
45#define strerr_die4(e,x1,x2,x3,x4,se) \
46strerr_die((e),(x1),(x2),(x3),(x4),0,0,(se))
47#define strerr_die3(e,x1,x2,x3,se) \
48strerr_die((e),(x1),(x2),(x3),0,0,0,(se))
49#define strerr_die2(e,x1,x2,se) \
50strerr_die((e),(x1),(x2),0,0,0,0,(se))
51#define strerr_die1(e,x1,se) \
52strerr_die((e),(x1),0,0,0,0,0,(se))
53
54#define strerr_die6sys(e,x1,x2,x3,x4,x5,x6) \
55strerr_die((e),(x1),(x2),(x3),(x4),(x5),(x6),&strerr_sys)
56#define strerr_die5sys(e,x1,x2,x3,x4,x5) \
57strerr_die((e),(x1),(x2),(x3),(x4),(x5),0,&strerr_sys)
58#define strerr_die4sys(e,x1,x2,x3,x4) \
59strerr_die((e),(x1),(x2),(x3),(x4),0,0,&strerr_sys)
60#define strerr_die3sys(e,x1,x2,x3) \
61strerr_die((e),(x1),(x2),(x3),0,0,0,&strerr_sys)
62#define strerr_die2sys(e,x1,x2) \
63strerr_die((e),(x1),(x2),0,0,0,0,&strerr_sys)
64#define strerr_die1sys(e,x1) \
65strerr_die((e),(x1),0,0,0,0,0,&strerr_sys)
66
67#define strerr_die6x(e,x1,x2,x3,x4,x5,x6) \
68strerr_die((e),(x1),(x2),(x3),(x4),(x5),(x6),0)
69#define strerr_die5x(e,x1,x2,x3,x4,x5) \
70strerr_die((e),(x1),(x2),(x3),(x4),(x5),0,0)
71#define strerr_die4x(e,x1,x2,x3,x4) \
72strerr_die((e),(x1),(x2),(x3),(x4),0,0,0)
73#define strerr_die3x(e,x1,x2,x3) \
74strerr_die((e),(x1),(x2),(x3),0,0,0,0)
75#define strerr_die2x(e,x1,x2) \
76strerr_die((e),(x1),(x2),0,0,0,0,0)
77#define strerr_die1x(e,x1) \
78strerr_die((e),(x1),0,0,0,0,0,0)
79
80#endif