Home | History | Annotate | Line # | Download | only in warp
warp.h revision 1.1
      1  1.1  kamil /* $Header: /tank/opengrok/rsync2/NetBSD/src/games/warp/warp.h,v 1.1 2020/11/09 23:37:05 kamil Exp $ */
      2  1.1  kamil 
      3  1.1  kamil /* $Log: warp.h,v $
      4  1.1  kamil /* Revision 1.1  2020/11/09 23:37:05  kamil
      5  1.1  kamil /* Add Warp Kit, Version 7.0 by Larry Wall
      6  1.1  kamil /*
      7  1.1  kamil /* Warp is a real-time space war game that doesn't get boring very quickly.
      8  1.1  kamil /* Read warp.doc and the manual page for more information.
      9  1.1  kamil /*
     10  1.1  kamil /* games/warp originally distributed with 4.3BSD-Reno, is back to the BSD
     11  1.1  kamil /* world via NetBSD. Its remnants were still mentioned in games/Makefile.
     12  1.1  kamil /*
     13  1.1  kamil /* Larry Wall, the original author and the copyright holder, generously
     14  1.1  kamil /* donated the game and copyright to The NetBSD Foundation, Inc.
     15  1.1  kamil /*
     16  1.1  kamil /* Import the game sources as-is from 4.3BSD-Reno, with the cession
     17  1.1  kamil /* of the copyright and license to BSD-2-clause NetBSD-style.
     18  1.1  kamil /*
     19  1.1  kamil /* Signed-off-by: Larry Wall <larry (at) wall.org>
     20  1.1  kamil /* Signed-off-by: Kamil Rytarowski <kamil (at) netbsd.org>
     21  1.1  kamil /*
     22  1.1  kamil  * Revision 7.0.1.2  86/12/12  17:08:42  lwall
     23  1.1  kamil  * Baseline for net release.
     24  1.1  kamil  *
     25  1.1  kamil  * Revision 7.0.1.1  86/10/16  10:54:26  lwall
     26  1.1  kamil  * Added Damage.  Fixed random bugs.
     27  1.1  kamil  *
     28  1.1  kamil  * Revision 7.0  86/10/08  15:17:55  lwall
     29  1.1  kamil  * Split into separate files.  Added amoebas and pirates.
     30  1.1  kamil  *
     31  1.1  kamil  */
     32  1.1  kamil 
     33  1.1  kamil extern int errno;
     34  1.1  kamil 
     35  1.1  kamil #include "config.h"	/* generated by Configure script */
     36  1.1  kamil 
     37  1.1  kamil #include <stdio.h>
     38  1.1  kamil #include <signal.h>
     39  1.1  kamil #include <ctype.h>
     40  1.1  kamil #include <sys/types.h>
     41  1.1  kamil #include <sys/stat.h>
     42  1.1  kamil #include <errno.h>
     43  1.1  kamil 
     44  1.1  kamil /* WARPLIB must be readable and writeable by warp, but not by anyone who you
     45  1.1  kamil  * don't trust.  In other words, to set up warp so everyone can play and
     46  1.1  kamil  * no one can cheat, give warp a uid of its own and make warp setuid to
     47  1.1  kamil  * that uid.  WARPLIB must then NOT be made writeable by the world,
     48  1.1  kamil  * since no attempt is made to encrypt saved games or anything.
     49  1.1  kamil  * (It must be readable by the world, however, due to a strangeness in
     50  1.1  kamil  * access.)
     51  1.1  kamil  */
     52  1.1  kamil 
     53  1.1  kamil #define SAVEDIR "./"
     54  1.1  kamil #define NEWSFILE "warp.news"
     55  1.1  kamil #define HELPFILE "warp.doc"
     56  1.1  kamil #define LOCKFILE ".warp.lock"
     57  1.1  kamil #define LOGFILE "warp.log"
     58  1.1  kamil #define SCOREBOARD "warp.top"
     59  1.1  kamil #define LSCOREBOARD "warp.lowtop"
     60  1.1  kamil #define FSCOREBOARD "warp.funtop"
     61  1.1  kamil #define TMPSCOREBOARD "warp.topnew"
     62  1.1  kamil #define WARPMACRO "%X/Kbmap.%{TERM}"
     63  1.1  kamil 
     64  1.1  kamil /* warp library */
     65  1.1  kamil #ifndef WARPLIB		/* ~ and %l only ("~%l" is permissable) */
     66  1.1  kamil #   ifdef PRIVLIB
     67  1.1  kamil #	define WARPLIB PRIVLIB
     68  1.1  kamil #   else
     69  1.1  kamil #	define WARPLIB "/usr/games/warp"
     70  1.1  kamil #   endif
     71  1.1  kamil #endif
     72  1.1  kamil 
     73  1.1  kamil EXT char *warplib;
     74  1.1  kamil 
     75  1.1  kamil #define PERMMAPS 8	/* how many starmaps are permanent */
     76  1.1  kamil #define MAPS 20		/* how many starmaps to choose from */
     77  1.1  kamil 			/* (MAPS - PERMMAPS is # of half-gone universes) */
     78  1.1  kamil 
     79  1.1  kamil /*
     80  1.1  kamil  * Screen size info, minimum screen size is 23x40 (actually 24x80).
     81  1.1  kamil  * YSIZE and XSIZE should be relatively prime so that a torpedo launched
     82  1.1  kamil  * at an angle will eventually cover the whole screen.
     83  1.1  kamil  * To calculate a new position for something:
     84  1.1  kamil  * new_position = (current_position + delta + ?SIZE00) % ?SIZE
     85  1.1  kamil  * This allows for negative deltas of up to ?SIZE00 (% doesn't work right
     86  1.1  kamil  * on negative numbers).
     87  1.1  kamil  * ?SIZE01, etc. are fudges for efficiency--they already include a delta.
     88  1.1  kamil  */
     89  1.1  kamil 
     90  1.1  kamil #define XYSIZE 920
     91  1.1  kamil #define XYSIZEx4 3680
     92  1.1  kamil 
     93  1.1  kamil #define YSIZE   23
     94  1.1  kamil #define YSIZE00 2300
     95  1.1  kamil #define YSIZE01 2301
     96  1.1  kamil #define YSIZE99 2299
     97  1.1  kamil 
     98  1.1  kamil #define XSIZE   40
     99  1.1  kamil #define XSIZE00 4000
    100  1.1  kamil #define XSIZE01 4001
    101  1.1  kamil #define XSIZE99 3999
    102  1.1  kamil #define XSIZE02 4002
    103  1.1  kamil #define XSIZE98 3998
    104  1.1  kamil #define XSIZE03 4003
    105  1.1  kamil #define XSIZE97 3997
    106  1.1  kamil #define XSIZE08 4008
    107  1.1  kamil #define XSIZE92 3992
    108  1.1  kamil 
    109  1.1  kamil EXT char amb[YSIZE][XSIZE];
    110  1.1  kamil 
    111  1.1  kamil #ifdef WHOAMI
    112  1.1  kamil #    include <whoami.h>
    113  1.1  kamil #endif
    114  1.1  kamil 
    115  1.1  kamil #ifndef isalnum
    116  1.1  kamil #   define isalnum(c) (isalpha(c) || isdigit(c))
    117  1.1  kamil #endif
    118  1.1  kamil 
    119  1.1  kamil #ifdef TERMIO
    120  1.1  kamil #   include <termio.h>
    121  1.1  kamil #else
    122  1.1  kamil #   include <sgtty.h>
    123  1.1  kamil #endif
    124  1.1  kamil 
    125  1.1  kamil #include <sys/timeb.h>
    126  1.1  kamil 
    127  1.1  kamil #   include <pwd.h>
    128  1.1  kamil 
    129  1.1  kamil #define BITSPERBYTE 8
    130  1.1  kamil #define LBUFLEN 512	/* line buffer length */
    131  1.1  kamil 
    132  1.1  kamil #ifdef pdp11
    133  1.1  kamil #   define CBUFLEN 256	/* command buffer length */
    134  1.1  kamil #   define PUSHSIZE 128
    135  1.1  kamil #else
    136  1.1  kamil #   define CBUFLEN 512	/* command buffer length */
    137  1.1  kamil #   define PUSHSIZE 256
    138  1.1  kamil #endif
    139  1.1  kamil #ifdef pdp11
    140  1.1  kamil #   define MAXFILENAME 128
    141  1.1  kamil #else
    142  1.1  kamil #   define MAXFILENAME 512
    143  1.1  kamil #endif
    144  1.1  kamil #define FINISHCMD 0177
    145  1.1  kamil 
    146  1.1  kamil /* some handy defs */
    147  1.1  kamil 
    148  1.1  kamil #define bool char
    149  1.1  kamil #define TRUE (1)
    150  1.1  kamil #define FALSE (0)
    151  1.1  kamil #define Null(t) ((t)0)
    152  1.1  kamil #define Nullch Null(char *)
    153  1.1  kamil #define Nullfp Null(FILE *)
    154  1.1  kamil 
    155  1.1  kamil #define Ctl(ch) (ch & 037)
    156  1.1  kamil 
    157  1.1  kamil #define strNE(s1,s2) (strcmp(s1,s2))
    158  1.1  kamil #define strEQ(s1,s2) (!strcmp(s1,s2))
    159  1.1  kamil #define strnNE(s1,s2,l) (strncmp(s1,s2,l))
    160  1.1  kamil #define strnEQ(s1,s2,l) (!strncmp(s1,s2,l))
    161  1.1  kamil 
    162  1.1  kamil #define sgn(x) ((x) < 0 ? -1 : (x) > 0)
    163  1.1  kamil 
    164  1.1  kamil /* Things we can figure out ourselves */
    165  1.1  kamil 
    166  1.1  kamil #ifdef SIGPROF
    167  1.1  kamil #   define BSD42		/* do we have Berkeley 4.2? */
    168  1.1  kamil #endif
    169  1.1  kamil 
    170  1.1  kamil #ifdef FIONREAD
    171  1.1  kamil #   define PENDING
    172  1.1  kamil #else
    173  1.1  kamil #   ifdef O_NDELAY
    174  1.1  kamil #	define PENDING
    175  1.1  kamil #   else
    176  1.1  kamil #	ifdef RDCHK
    177  1.1  kamil #	    define PENDING
    178  1.1  kamil #	endif
    179  1.1  kamil #   endif
    180  1.1  kamil #endif
    181  1.1  kamil 
    182  1.1  kamil #define UNLINK(victim) unlink(victim)
    183  1.1  kamil 
    184  1.1  kamil /* Valid substitutions for strings marked with % comment are:
    185  1.1  kamil  *	%H	Host name (yours)
    186  1.1  kamil  *	%L	Login name (yours)
    187  1.1  kamil  *	%N	Full name (yours)
    188  1.1  kamil  *	%O	Original working directory (where you ran warp from)
    189  1.1  kamil  *	%X	Warp library directory
    190  1.1  kamil  *	%~	Home directory
    191  1.1  kamil  *	%.	Directory containing . files
    192  1.1  kamil  *	%$	current process number
    193  1.1  kamil  *	%{name} Environment variable "name".  %{name-default} form allowed.
    194  1.1  kamil  *	%"prompt"
    195  1.1  kamil  *		Print prompt and insert what is typed.
    196  1.1  kamil  *	%`command`
    197  1.1  kamil  *		Insert output of command.
    198  1.1  kamil  *	%(test_text=pattern?if_text:else_text)
    199  1.1  kamil  *		Substitute if_text if test_text matches pattern, otherwise
    200  1.1  kamil  *		substitute else_text.  Use != for negated match.
    201  1.1  kamil  *		% substitutions are done on test_text, if_text, and else_text.
    202  1.1  kamil  *		(Note: %() only works if CONDSUB defined.)
    203  1.1  kamil  */
    204  1.1  kamil 
    205  1.1  kamil /* *** System Dependent Stuff *** */
    206  1.1  kamil 
    207  1.1  kamil /* NOTE: many of these are defined in the config.h file */
    208  1.1  kamil 
    209  1.1  kamil #ifndef ROOTID
    210  1.1  kamil #   define ROOTID 0        /* uid of superuser */
    211  1.1  kamil #endif
    212  1.1  kamil 
    213  1.1  kamil #   define sigset Signal
    214  1.1  kamil #   define sigignore(sig) Signal(sig,SIG_IGN)
    215  1.1  kamil 
    216  1.1  kamil #ifndef LOGDIRFIELD
    217  1.1  kamil #   define LOGDIRFIELD 6		/* Which field (origin 1) is the */
    218  1.1  kamil 					/* login directory in /etc/passwd? */
    219  1.1  kamil 					/* (If it is not kept in passwd, */
    220  1.1  kamil 					/* but getpwnam() returns it, */
    221  1.1  kamil 					/* define the symbol GETPWENT) */
    222  1.1  kamil #endif
    223  1.1  kamil #ifndef GCOSFIELD
    224  1.1  kamil #   define GCOSFIELD 5
    225  1.1  kamil #endif
    226  1.1  kamil 
    227  1.1  kamil /* Undefine any of the following features to save both I and D space */
    228  1.1  kamil /* In general, earlier ones are easier to get along without */
    229  1.1  kamil /* Pdp11's without split I and D may have to undefine them all */
    230  1.1  kamil #define DEBUGGING	/* include debugging code */
    231  1.1  kamil #define PUSHBACK	/* macros and keymaps using pushback buffer */
    232  1.1  kamil #define CONDSUB		/* allow %(cond?text:text) */
    233  1.1  kamil #define BACKTICK	/* allow %`command` */
    234  1.1  kamil #define PROMPTTTY	/* allow %"prompt" */
    235  1.1  kamil #define GETLOGIN	/* use getlogin() routine as backup to environment */
    236  1.1  kamil 			/* variables USER or LOGNAME */
    237  1.1  kamil #define TILDENAME	/* allow ~logname expansion */
    238  1.1  kamil #define GETWD		/* use our getwd() instead of piped in pwd */
    239  1.1  kamil #define SETUIDGID	/* substitute eaccess() for access() so that rn */
    240  1.1  kamil 			/* can run setuid or setgid */
    241  1.1  kamil 			/* if not setuid or setgid, you don't need it */
    242  1.1  kamil #define VERBOSE		/* compile in more informative messages */
    243  1.1  kamil #define TERSE		/* compile in shorter messages */
    244  1.1  kamil 
    245  1.1  kamil /* some dependencies among options */
    246  1.1  kamil 
    247  1.1  kamil #ifndef SETUIDGID
    248  1.1  kamil #   define eaccess access
    249  1.1  kamil #endif
    250  1.1  kamil 
    251  1.1  kamil #ifdef VERBOSE
    252  1.1  kamil #   ifdef TERSE
    253  1.1  kamil #	define IF(c) if (c)
    254  1.1  kamil #	define ELSE else
    255  1.1  kamil #   else /* !TERSE */
    256  1.1  kamil #	define IF(c)
    257  1.1  kamil #	define ELSE
    258  1.1  kamil #   endif
    259  1.1  kamil #else /* !VERBOSE */
    260  1.1  kamil #   ifndef TERSE
    261  1.1  kamil #	define TERSE
    262  1.1  kamil #   endif
    263  1.1  kamil #   define IF(c) "IF" outside of VERBOSE???
    264  1.1  kamil #   define ELSE "ELSE" outside of VERBOSE???
    265  1.1  kamil #endif
    266  1.1  kamil 
    267  1.1  kamil #ifdef DEBUGGING
    268  1.1  kamil #   define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\r\n", __FILE__, __LINE__);sig_catcher(0);}}
    269  1.1  kamil #else
    270  1.1  kamil #   define assert(ex) ;
    271  1.1  kamil #endif
    272  1.1  kamil 
    273  1.1  kamil #define TCSIZE 512	/* capacity for termcap strings */
    274  1.1  kamil 
    275  1.1  kamil /* End of Space Conservation Section */
    276  1.1  kamil 
    277  1.1  kamil /* More System Dependencies */
    278  1.1  kamil 
    279  1.1  kamil /* preferred shell for use in doshell routine */
    280  1.1  kamil /*  ksh or sh would be okay here */
    281  1.1  kamil #ifndef PREFSHELL
    282  1.1  kamil #   define PREFSHELL "/bin/csh"
    283  1.1  kamil #endif
    284  1.1  kamil 
    285  1.1  kamil /* path to fastest starting shell */
    286  1.1  kamil #ifndef SH
    287  1.1  kamil #   define SH "/bin/sh"
    288  1.1  kamil #endif
    289  1.1  kamil 
    290  1.1  kamil /* location of macro file */
    291  1.1  kamil #ifndef WARPMACRO
    292  1.1  kamil #   ifdef PUSHBACK
    293  1.1  kamil #	define WARPMACRO "%./.warpmac"
    294  1.1  kamil #   endif
    295  1.1  kamil #endif
    296  1.1  kamil 
    297  1.1  kamil /* location of full name */
    298  1.1  kamil #ifndef FULLNAMEFILE
    299  1.1  kamil #   ifndef PASSNAMES
    300  1.1  kamil #	define FULLNAMEFILE "%./.fullname"
    301  1.1  kamil #   endif
    302  1.1  kamil #endif
    303  1.1  kamil 
    304  1.1  kamil /* a motd-like file for warp */
    305  1.1  kamil #ifndef WARPNEWSNAME		/* % and ~ */
    306  1.1  kamil #   define WARPNEWSNAME "%X/warp.news"
    307  1.1  kamil #endif
    308  1.1  kamil 
    309  1.1  kamil /* typedefs */
    310  1.1  kamil 
    311  1.1  kamil typedef unsigned int	MEM_SIZE;	/* for passing to malloc */
    312  1.1  kamil 
    313  1.1  kamil /* *** end of the machine dependent stuff *** */
    314  1.1  kamil 
    315  1.1  kamil /* GLOBAL THINGS */
    316  1.1  kamil 
    317  1.1  kamil /* file statistics area */
    318  1.1  kamil 
    319  1.1  kamil EXT struct stat filestat;
    320  1.1  kamil 
    321  1.1  kamil /* various things of type char */
    322  1.1  kamil 
    323  1.1  kamil char	*index();
    324  1.1  kamil char	*rindex();
    325  1.1  kamil char	*getenv();
    326  1.1  kamil char	*strcat();
    327  1.1  kamil char	*strcpy();
    328  1.1  kamil 
    329  1.1  kamil EXT char buf[LBUFLEN+1];	/* general purpose line buffer */
    330  1.1  kamil 
    331  1.1  kamil EXT char *cwd INIT(Nullch);		/* current working directory */
    332  1.1  kamil 
    333  1.1  kamil /* switches */
    334  1.1  kamil 
    335  1.1  kamil #ifdef DEBUGGING
    336  1.1  kamil     EXT int debug INIT(0);				/* -D */
    337  1.1  kamil #   define DEB_FILEXP 64
    338  1.1  kamil #endif
    339  1.1  kamil 
    340  1.1  kamil #ifdef VERBOSE
    341  1.1  kamil #   ifdef TERSE
    342  1.1  kamil 	EXT bool verbose INIT(TRUE);			/* +t */
    343  1.1  kamil #   endif
    344  1.1  kamil #endif
    345  1.1  kamil 
    346  1.1  kamil /* miscellania */
    347  1.1  kamil 
    348  1.1  kamil EXT FILE *tmpfp INIT(Nullfp);	/* scratch fp */
    349  1.1  kamil 
    350  1.1  kamil #define NOMARKING 0
    351  1.1  kamil #define STANDOUT 1
    352  1.1  kamil #define UNDERLINE 2
    353  1.1  kamil 
    354  1.1  kamil /* Factored strings */
    355  1.1  kamil 
    356  1.1  kamil EXT char nullstr[] INIT("");
    357  1.1  kamil EXT char readerr[] INIT("warp read error");
    358  1.1  kamil EXT char cantopen[] INIT("Can't open %s\r\n");
    359  1.1  kamil 
    360  1.1  kamil #ifdef VERBOSE
    361  1.1  kamil     EXT char nocd[] INIT("Can't chdir to directory %s\r\n");
    362  1.1  kamil #else
    363  1.1  kamil     EXT char nocd[] INIT("Can't find %s\r\n");
    364  1.1  kamil #endif
    365  1.1  kamil 
    366  1.1  kamil extern int errno;
    367  1.1  kamil 
    368  1.1  kamil EXT bool justonemoretime INIT(TRUE);
    369  1.1  kamil EXT bool keepgoing INIT(TRUE);
    370  1.1  kamil 
    371  1.1  kamil EXT bool friendspec INIT(FALSE);
    372  1.1  kamil EXT bool piratespec INIT(FALSE);
    373  1.1  kamil EXT bool amoebaspec INIT(FALSE);
    374  1.1  kamil EXT bool starspec INIT(FALSE);
    375  1.1  kamil EXT bool klingspec INIT(FALSE);
    376  1.1  kamil EXT bool apolspec INIT(FALSE);
    377  1.1  kamil EXT bool crushspec INIT(FALSE);
    378  1.1  kamil EXT bool romspec INIT(FALSE);
    379  1.1  kamil EXT bool prespec INIT(FALSE);
    380  1.1  kamil EXT bool tholspec INIT(FALSE);
    381  1.1  kamil EXT bool gornspec INIT(FALSE);
    382  1.1  kamil EXT bool beginner INIT(FALSE);
    383  1.1  kamil EXT bool massacre INIT(FALSE);
    384  1.1  kamil EXT bool lowspeed INIT(FALSE);
    385  1.1  kamil EXT bool debugging INIT(FALSE);
    386  1.1  kamil EXT bool didkill INIT(FALSE);
    387  1.1  kamil EXT bool experimenting INIT(FALSE);
    388  1.1  kamil EXT bool scorespec INIT(FALSE);
    389  1.1  kamil EXT bool metakey INIT(FALSE);
    390  1.1  kamil 
    391  1.1  kamil EXT bool bombed_out;
    392  1.1  kamil EXT bool panic INIT(FALSE);
    393  1.1  kamil EXT bool madgorns;
    394  1.1  kamil 
    395  1.1  kamil EXT int madfriends;
    396  1.1  kamil 
    397  1.1  kamil EXT int inumpirates;
    398  1.1  kamil EXT int numpirates;
    399  1.1  kamil EXT int inumfriends;
    400  1.1  kamil EXT int numfriends;
    401  1.1  kamil EXT int inumamoebas;
    402  1.1  kamil EXT int numamoebas;
    403  1.1  kamil EXT int inumstars;
    404  1.1  kamil EXT int numstars;
    405  1.1  kamil EXT int inumenemies;
    406  1.1  kamil EXT int numenemies;
    407  1.1  kamil EXT int inumroms;
    408  1.1  kamil EXT int inumthols;
    409  1.1  kamil EXT int inumapollos;
    410  1.1  kamil EXT int numapollos;
    411  1.1  kamil EXT int apolloflag;
    412  1.1  kamil EXT int inumcrushes;
    413  1.1  kamil EXT int numcrushes;
    414  1.1  kamil EXT int inumgorns;
    415  1.1  kamil EXT int numgorns;
    416  1.1  kamil EXT int deados;
    417  1.1  kamil EXT int deadmudds;
    418  1.1  kamil EXT int smarts;
    419  1.1  kamil EXT int ismarts INIT(0);
    420  1.1  kamil EXT int numos INIT(0);
    421  1.1  kamil EXT int numxes INIT(0);
    422  1.1  kamil EXT int ient;
    423  1.1  kamil EXT int numents;
    424  1.1  kamil EXT int ibase;
    425  1.1  kamil EXT int numbases;
    426  1.1  kamil EXT int inuminhab;
    427  1.1  kamil EXT int numinhab;
    428  1.1  kamil EXT int wave;
    429  1.1  kamil EXT int cumsmarts;
    430  1.1  kamil EXT int prescene INIT(-1);
    431  1.1  kamil EXT int scandist;
    432  1.1  kamil EXT int antibase;
    433  1.1  kamil EXT int sm35;
    434  1.1  kamil EXT int sm45;
    435  1.1  kamil EXT int sm50;
    436  1.1  kamil EXT int sm55;
    437  1.1  kamil EXT int sm80;
    438  1.1  kamil EXT int sm95;
    439  1.1  kamil EXT int entmax;
    440  1.1  kamil EXT int basemax;
    441  1.1  kamil EXT int enemshields;
    442  1.1  kamil EXT int super;
    443  1.1  kamil EXT int whenok;
    444  1.1  kamil EXT int yamblast;
    445  1.1  kamil EXT int xamblast;
    446             EXT int ambsize;
    447             
    448             EXT char spbuf[512];
    449             
    450             char *index(), *ttyname(), *malloc(), *ctime(), *strcpy();
    451             char *getenv(), cmstore(), *tgoto();
    452             long atol();
    453             
    454             #define Fclose (void)fclose
    455             #define Fflush (void)fflush
    456             #define Fgets (void)fgets
    457             #define Sprintf (void)sprintf
    458             #define Signal (void)signal
    459             #define Safecpy (void)safecpy
    460             #define Cpytill (void)cpytill
    461             #define Tract (void)tract
    462             #define Make_object (void)make_object
    463             #define Read_tty (void)read_tty
    464