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