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