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