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