util.h revision 1.5 1 1.5 is /* $NetBSD: util.h,v 1.5 2000/10/11 14:46:15 is Exp $ */
2 1.1 cgd
3 1.1 cgd /* and for those machine that can't handle a variable argument list */
4 1.1 cgd
5 1.1 cgd #ifdef CANVARARG
6 1.1 cgd
7 1.1 cgd #define say1 say
8 1.1 cgd #define say2 say
9 1.1 cgd #define say3 say
10 1.1 cgd #define say4 say
11 1.1 cgd #define ask1 ask
12 1.1 cgd #define ask2 ask
13 1.1 cgd #define ask3 ask
14 1.1 cgd #define ask4 ask
15 1.1 cgd #define fatal1 fatal
16 1.1 cgd #define fatal2 fatal
17 1.1 cgd #define fatal3 fatal
18 1.1 cgd #define fatal4 fatal
19 1.1 cgd #define pfatal1 pfatal
20 1.1 cgd #define pfatal2 pfatal
21 1.1 cgd #define pfatal3 pfatal
22 1.1 cgd #define pfatal4 pfatal
23 1.1 cgd
24 1.1 cgd #else /* hope they allow multi-line macro actual arguments */
25 1.1 cgd
26 1.1 cgd #ifdef lint
27 1.1 cgd
28 1.1 cgd #define say1(a) say(a, 0, 0, 0)
29 1.1 cgd #define say2(a,b) say(a, (b)==(b), 0, 0)
30 1.1 cgd #define say3(a,b,c) say(a, (b)==(b), (c)==(c), 0)
31 1.1 cgd #define say4(a,b,c,d) say(a, (b)==(b), (c)==(c), (d)==(d))
32 1.1 cgd #define ask1(a) ask(a, 0, 0, 0)
33 1.1 cgd #define ask2(a,b) ask(a, (b)==(b), 0, 0)
34 1.1 cgd #define ask3(a,b,c) ask(a, (b)==(b), (c)==(c), 0)
35 1.1 cgd #define ask4(a,b,c,d) ask(a, (b)==(b), (c)==(c), (d)==(d))
36 1.1 cgd #define fatal1(a) fatal(a, 0, 0, 0)
37 1.1 cgd #define fatal2(a,b) fatal(a, (b)==(b), 0, 0)
38 1.1 cgd #define fatal3(a,b,c) fatal(a, (b)==(b), (c)==(c), 0)
39 1.1 cgd #define fatal4(a,b,c,d) fatal(a, (b)==(b), (c)==(c), (d)==(d))
40 1.1 cgd #define pfatal1(a) pfatal(a, 0, 0, 0)
41 1.1 cgd #define pfatal2(a,b) pfatal(a, (b)==(b), 0, 0)
42 1.1 cgd #define pfatal3(a,b,c) pfatal(a, (b)==(b), (c)==(c), 0)
43 1.1 cgd #define pfatal4(a,b,c,d) pfatal(a, (b)==(b), (c)==(c), (d)==(d))
44 1.1 cgd
45 1.1 cgd #else /* lint */
46 1.1 cgd /* if this doesn't work, try defining CANVARARG above */
47 1.1 cgd #define say1(a) say(a, Nullch, Nullch, Nullch)
48 1.1 cgd #define say2(a,b) say(a, b, Nullch, Nullch)
49 1.1 cgd #define say3(a,b,c) say(a, b, c, Nullch)
50 1.1 cgd #define say4 say
51 1.1 cgd #define ask1(a) ask(a, Nullch, Nullch, Nullch)
52 1.1 cgd #define ask2(a,b) ask(a, b, Nullch, Nullch)
53 1.1 cgd #define ask3(a,b,c) ask(a, b, c, Nullch)
54 1.1 cgd #define ask4 ask
55 1.1 cgd #define fatal1(a) fatal(a, Nullch, Nullch, Nullch)
56 1.1 cgd #define fatal2(a,b) fatal(a, b, Nullch, Nullch)
57 1.1 cgd #define fatal3(a,b,c) fatal(a, b, c, Nullch)
58 1.1 cgd #define fatal4 fatal
59 1.1 cgd #define pfatal1(a) pfatal(a, Nullch, Nullch, Nullch)
60 1.1 cgd #define pfatal2(a,b) pfatal(a, b, Nullch, Nullch)
61 1.1 cgd #define pfatal3(a,b,c) pfatal(a, b, c, Nullch)
62 1.1 cgd #define pfatal4 pfatal
63 1.1 cgd
64 1.1 cgd #endif /* lint */
65 1.1 cgd
66 1.1 cgd /* if neither of the above work, join all multi-line macro calls. */
67 1.1 cgd #endif
68 1.1 cgd
69 1.1 cgd EXT char serrbuf[BUFSIZ]; /* buffer for stderr */
70 1.1 cgd
71 1.4 christos int move_file __P((char *, char *));
72 1.4 christos void copy_file __P((char *, char *));
73 1.4 christos char *savestr __P((Reg1 char *));
74 1.5 is void say __P((const char *, ...))
75 1.5 is __attribute__((__format__(__printf__, 1, 2)));
76 1.5 is void fatal __P((const char *, ...))
77 1.5 is __attribute__((__format__(__printf__, 1, 2)));
78 1.5 is void pfatal __P((const char *, ...))
79 1.5 is __attribute__((__format__(__printf__, 1, 2)));
80 1.5 is void ask __P((const char *, ...))
81 1.5 is __attribute__((__format__(__printf__, 1, 2)));
82 1.4 christos void set_signals __P((int));
83 1.4 christos void ignore_signals __P((void));
84 1.4 christos void makedirs __P((Reg1 char *, bool));
85 1.4 christos char *fetchname __P((char *, int, int));
86