Home | History | Annotate | Line # | Download | only in patch
util.h revision 1.6
      1 /*	$NetBSD: util.h,v 1.6 2002/03/08 21:57:33 kristerw 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(char *, char *);
     72 void copy_file(char *, char *);
     73 char *savestr(char *);
     74 void say(const char *, ...)
     75      __attribute__((__format__(__printf__, 1, 2)));
     76 void fatal(const char *, ...)
     77      __attribute__((__format__(__printf__, 1, 2)));
     78 void pfatal(const char *, ...)
     79      __attribute__((__format__(__printf__, 1, 2)));
     80 void ask(const char *, ...)
     81      __attribute__((__format__(__printf__, 1, 2)));
     82 void set_signals(int);
     83 void ignore_signals(void);
     84 void makedirs(char *, bool);
     85 char *fetchname(char *, int, int);
     86