/* $Header: /home/ncvs/src/gnu/usr.bin/patch/util.h,v 1.3 1997/02/13 21:10:45 jmg Exp $ * * $Log: util.h,v $ * Revision 1.3 1997/02/13 21:10:45 jmg * Fix a problem with patch in that is will always default, even when the * controlling terminal is closed. Now the function ask() will return 1 when th * input is known to come from a file or terminal, or it will return 0 when ther * was a read error. * * Modified the question "Skip patch?" so that on an error from ask it will skip * the patch instead of looping. * * Closes PR#777 * * 2.2 candidate * * Revision 1.2 1995/05/30 05:02:38 rgrimes * Remove trailing whitespace. * * Revision 1.1.1.1 1993/06/19 14:21:52 paul * b-maked patch-2.10 * * Revision 2.0 86/09/17 15:40:06 lwall * Baseline for netwide release. * */ /* and for those machine that can't handle a variable argument list */ #ifdef CANVARARG #define say1 say #define say2 say #define say3 say #define say4 say #define ask1 ask #define ask2 ask #define ask3 ask #define ask4 ask #define fatal1 fatal #define fatal2 fatal #define fatal3 fatal #define fatal4 fatal #define pfatal1 pfatal #define pfatal2 pfatal #define pfatal3 pfatal #define pfatal4 pfatal #else /* hope they allow multi-line macro actual arguments */ #ifdef lint #define say1(a) say(a, 0, 0, 0) #define say2(a,b) say(a, (b)==(b), 0, 0) #define say3(a,b,c) say(a, (b)==(b), (c)==(c), 0) #define say4(a,b,c,d) say(a, (b)==(b), (c)==(c), (d)==(d)) #define ask1(a) ask(a, 0, 0, 0) #define ask2(a,b) ask(a, (b)==(b), 0, 0) #define ask3(a,b,c) ask(a, (b)==(b), (c)==(c), 0) #define ask4(a,b,c,d) ask(a, (b)==(b), (c)==(c), (d)==(d)) #define fatal1(a) fatal(a, 0, 0, 0) #define fatal2(a,b) fatal(a, (b)==(b), 0, 0) #define fatal3(a,b,c) fatal(a, (b)==(b), (c)==(c), 0) #define fatal4(a,b,c,d) fatal(a, (b)==(b), (c)==(c), (d)==(d)) #define pfatal1(a) pfatal(a, 0, 0, 0) #define pfatal2(a,b) pfatal(a, (b)==(b), 0, 0) #define pfatal3(a,b,c) pfatal(a, (b)==(b), (c)==(c), 0) #define pfatal4(a,b,c,d) pfatal(a, (b)==(b), (c)==(c), (d)==(d)) #else /* lint */ /* if this doesn't work, try defining CANVARARG above */ #define say1(a) say(a, Nullch, Nullch, Nullch) #define say2(a,b) say(a, b, Nullch, Nullch) #define say3(a,b,c) say(a, b, c, Nullch) #define say4 say #define ask1(a) ask(a, Nullch, Nullch, Nullch) #define ask2(a,b) ask(a, b, Nullch, Nullch) #define ask3(a,b,c) ask(a, b, c, Nullch) #define ask4 ask #define fatal1(a) fatal(a, Nullch, Nullch, Nullch) #define fatal2(a,b) fatal(a, b, Nullch, Nullch) #define fatal3(a,b,c) fatal(a, b, c, Nullch) #define fatal4 fatal #define pfatal1(a) pfatal(a, Nullch, Nullch, Nullch) #define pfatal2(a,b) pfatal(a, b, Nullch, Nullch) #define pfatal3(a,b,c) pfatal(a, b, c, Nullch) #define pfatal4 pfatal #endif /* lint */ /* if neither of the above work, join all multi-line macro calls. */ #endif EXT char serrbuf[BUFSIZ]; /* buffer for stderr */ char *fetchname(); int move_file(); void copy_file(); void say(); void fatal(); void pfatal(); int ask(); char *savestr(); void set_signals(); void ignore_signals(); void makedirs(); char *basename();