[comp.sources.games] v10i022: NetHack3 - display oriented dungeons & dragons

billr@saab.CNA.TEK.COM (Bill Randle) (06/06/90)

Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
Posting-number: Volume 10, Issue 22
Archive-name: NetHack3/Patch8d
Patch-To: NetHack3: Volume 7, Issue 56-93



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 4 (of 24)."
# Contents:  amiga/GBinfo.uu patch8.12 vms/lev_lex.h
# Wrapped by billr@saab on Mon Jun  4 15:27:14 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'amiga/GBinfo.uu' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'amiga/GBinfo.uu'\"
else
echo shar: Extracting \"'amiga/GBinfo.uu'\" \(2541 characters\)
sed "s/^X//" >'amiga/GBinfo.uu' <<'END_OF_FILE'
Xbegin 644 Guidebook.info
XMXQ```0``````NP`2`%``*P`&``,``0`B3>``(DZH````````````````````
XM````!/X`(ID``````(````"``````````````````!]```````!0`"H``@`!
XMT]@#````````````````````````````````````````````````/______X
XM!X```/\\__]__?_\``#_'/_^?_W__P``_PSP?!_Y__\``?\DYSY_^_S_@`#_
XM,.`^?_G^?X``_SCG_F_]_S^``'\\\'\?_/^_@``?______X_OX``````````
XM`'^`````'_______@````!S______P`````\______\`````//@\0^#^````
XM`'SSGCG.?@````#\\YYYP'P`````_/.>?\_X`````?SX/#_@^`````/\____
XM__`````#_/_____@````!_P!____X`````_______\`````/______^`````
XM``````'_@``'_______"_P``#_______GWX``!YS___Q_[Y^```^<___^?]\
XM_```/G.#\'G/?_@``#X#^><YGT?X```^<\'G^#\/\```/G,YYSF??^```!YS
XMA/!QSS^````/______^?````!_______S```````````````````````````
XM``````````````````````````````````````````````````````````!_
XM______S_P```P``````'^'P``0##``"``@`#``$`XP`!@`(``(`#`/,/@^`&
XM``#``@#;&,&`!`,`0`,`SQ_!@`8!@$`!`,<8`9`"`,!``8###X#@`P!`0`#@
XM``````'`0$``/________X!`````(```````0````&,``````,````!#````
XM``"`````PP?#O!\!@````(,,8<8Q@0````$##&&&/X(````#`PQA@#`&````
XM`@,'P\`?!`````0#``````@````,`P`````8````"`/^````$````!``````
XM`"`````P``````!@``?_______X`0``8```````]`,``,```````8(&``"&,
XM```.`$&!``!!C```!@"#`P``08Q\#X8P@`8``$'\!AC&8,0$``!!C#X8!\"`
XM"```08S&&,9@@!@``&&,>P^.,,!P```P``````!@P```&```````,X````?_
XM______X``````````````````````````````````````````````````%``
XM*@`"``'@\`,````````````````````````````````````````````````_
XM______@'@```_SS__W_]__P``/\<__Y__`/_``#_#/!\'_@`/P`!_R3G/G_X
XM``>``/\PX#Y_^`````#_..?^;_P`````?SSP?Q_\X````!_______C@`````
XM````````8#`````?_____@``````'/____X``````#S_____```````\^#Q#
XMX`,`````?/.>.<X#`````/SSGGG`8P````#\\YY_S_L````!_/@\/^#_@```
XM`_S______.````/\_____^`````'_`'____@````#_______P`````______
XM_X```````````?^```?______\+_```/______^??@``'G/___'_OGX``#YS
XM___Y_WS\```^<X/P><]_^```/@/YYSF??_@``#YSP>?X/W_P```^<SGG.9]_
XMX```'G.$\''//X````_______Y\````'_______,````````````````````
XM````````````````````````````````````````````````````````````
XM`````'_______/_```#```````?X?``!`,,``(`"``,``0#C``&``_P`@`,`
XM\P^#X`8#P,`"`-L8P8`$`#A``P#/'\&`!@`'P`$`QQ@!D`(``'@!@,,/@.`#
XM```&`.```````<```@`_________X#(````@`````0`"````8P````$_\@``
XM`$,`````C^0```##!\.\'\.(````@PQAQC'C<````0,,888_GX````,##&&`
XM,`<````"`P?#P!\'@```!`,`````'.````P#`````!@````(`_X````0````
XM$```````(````#```````&``!________@!``!@``````#T`P``P``````!@
XM@8``(8P```X`08$``$&,```&`(,#``!!C'P/AC"`!@``0?P&&,9@@`0``$&,
XM/A@'P(`(``!!C,88QF"`&```88Q[#XXPP'```#```````&#````8```````S
XM@```!________@``````````````````````````````````````````````
X5`!-365,Z571I;&ET:65S+TUO<F4`
X`
Xend
END_OF_FILE
if test 2541 -ne `wc -c <'amiga/GBinfo.uu'`; then
    echo shar: \"'amiga/GBinfo.uu'\" unpacked with wrong size!
fi
# end of 'amiga/GBinfo.uu'
fi
if test -f 'patch8.12' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch8.12'\"
else
echo shar: Extracting \"'patch8.12'\" \(53441 characters\)
sed "s/^X//" >'patch8.12' <<'END_OF_FILE'
X*** include/Old/amiconf.h	Sun Jun  3 16:01:53 1990
X--- include/amiconf.h	Wed May 23 17:58:08 1990
X***************
X*** 107,112 ****
X--- 107,113 ----
X  #define MAIL			/* Get mail at unexpected occasions */
X  #define AMIGA_WBENCH		/* Icon support */
X  #define DEFAULT_ICON "NetHack:default.icon"	/* private icon for above */
X+ #define AMIFLUSH		/* toss typeahead (select flush in .cnf) */
X  #undef	TERMLIB
X  
X  #endif /* AMICONF_H */
X*** include/Old/config.h	Sun Jun  3 16:02:40 1990
X--- include/config.h	Thu May 24 21:31:06 1990
X***************
X*** 11,17 ****
X   *		Select the version of the OS you are using.
X   *		For "UNIX" select either SYSV or BSD in unixconf.h.
X   *		A "VMS" option is not needed since the VMS C-compiler
X!  *		provides it (comment out the default OS option here).
X   */
X  
X  #define UNIX		/* delete if no fork(), exec() available */
X--- 11,17 ----
X   *		Select the version of the OS you are using.
X   *		For "UNIX" select either SYSV or BSD in unixconf.h.
X   *		A "VMS" option is not needed since the VMS C-compiler
X!  *              provides it (no need to change sec#1, vmsconf.h handles it).
X   */
X  
X  #define UNIX		/* delete if no fork(), exec() available */
X***************
X*** 22,34 ****
X  /* #define MSDOS	/* define for MS-DOS and most other micros */
X  			/* DO NOT define for AMIGA - MSDOS will be
X  			 * automatically defined at the right place. */
X! # ifdef AZTEC_C 	/* Manx 3.6 auto-defines this */
X! #  ifdef MCH_AMIGA	/* Manx 3.6 auto-defines this for AMIGA */
X  #   ifndef AMIGA
X  #define AMIGA		/* define for Commodore-Amiga */
X  #   endif		/* (Lattice auto-defines AMIGA) */
X  #  endif
X  # endif
X  /* #define TOS		/* define for Atari 1040ST */
X  
X  /* #define STUPID	/* avoid some complicated expressions if
X--- 22,43 ----
X  /* #define MSDOS	/* define for MS-DOS and most other micros */
X  			/* DO NOT define for AMIGA - MSDOS will be
X  			 * automatically defined at the right place. */
X! # ifdef AZTEC_C 	/* Manx auto-defines this */
X! #  ifdef MCH_AMIGA	/* Manx auto-defines this for AMIGA */
X  #   ifndef AMIGA
X  #define AMIGA		/* define for Commodore-Amiga */
X  #   endif		/* (Lattice auto-defines AMIGA) */
X+ /* #define AZTEC_36	/* define for version 3.6 of manx */
X+ #define AZTEC_50	/* define for version 5.0 of manx */
X  #  endif
X  # endif
X+ #ifdef LATTICE
X+ # define NEARDATA __near /* put some data close */
X+ # define NO_SCAN_BRACK	/* scanf doesn't handle [] (this define available
X+ 			 * for any system with this problem) */
X+ #else
X+ # define NEARDATA
X+ #endif
X  /* #define TOS		/* define for Atari 1040ST */
X  
X  /* #define STUPID	/* avoid some complicated expressions if
X***************
X*** 36,42 ****
X  /* #define STUPID_CPP	/* use many small functions instead of macros to
X  			   avoid overloading limited preprocessors */
X  /* #define TERMINFO	/* uses terminfo rather than termcap */
X! 			/* should be defined for most, but not all, SYSV */
X  			/* in particular, it should NOT be defined for the
X  			 * UNIXPC unless you remove the use of the shared
X  			 * library in the makefile */
X--- 45,52 ----
X  /* #define STUPID_CPP	/* use many small functions instead of macros to
X  			   avoid overloading limited preprocessors */
X  /* #define TERMINFO	/* uses terminfo rather than termcap */
X! 			/* should be defined for HPUX and most, but not all,
X! 			   SYSV */
X  			/* in particular, it should NOT be defined for the
X  			 * UNIXPC unless you remove the use of the shared
X  			 * library in the makefile */
X***************
X*** 47,72 ****
X  
X  #ifdef AMIGA
X  #define NEED_VARARGS
X! # ifdef AZTEC_C
X  #  define KR1ED		/* Aztec 3.6 needs extra help for defined() */
X  # endif
X  #endif
X  
X  #ifdef MACOS
X! /* #define KR1ED	/* for compilers which can't handle defined() */
X! 			/* Lightspeed & Aztec can't handle defined() yet */
X! /* #define LSC		/* for the Lightspeed 3.01p4 C compiler on the Mac */
X  /* #define AZTEC	/* for the Manx Aztec C 3.6c compiler */
X! #define THINKC4	/* for the Think C 4 compiler */
X! /* #define MAKEDEFS_C	/* uncomment this ONLY while compiling makedefs */
X! /* #define CUSTOM_IO	/* uncomment only while compiling Nethack */
X  # ifndef MAKEDEFS_C
X  #  ifndef NEED_VARARGS
X  #define NEED_VARARGS	/* if you're using precompiled headers */
X  #  endif
X  # endif
X! #define SMALLDATA	/* for Mac compilers with 32K global data limit */
X! #endif
X  
X  
X  #ifdef KR1ED		/* For compilers which cannot handle defined() */
X--- 57,114 ----
X  
X  #ifdef AMIGA
X  #define NEED_VARARGS
X! # ifdef AZTEC_36
X  #  define KR1ED		/* Aztec 3.6 needs extra help for defined() */
X  # endif
X+ # ifdef AZTEC_50
X+ #  define USE_OLDARGS	/* Aztec 5.0 prototypes aren't quite right */
X+ # endif
X  #endif
X  
X  #ifdef MACOS
X! #define THINKC4		/* for the Think C 4.0 compiler */
X! /* #define LSC		/* for the Lightspeed C 3.01p4 compiler */
X  /* #define AZTEC	/* for the Manx Aztec C 3.6c compiler */
X! #define SMALLDATA	/* for Mac compilers with 32K global data limit */
X! #define CUSTOM_IO	/* uncomment only while compiling Nethack */
X! /* #define MAKEDEFS_C	/* uncomment only while compiling makedefs */
X  # ifndef MAKEDEFS_C
X  #  ifndef NEED_VARARGS
X  #define NEED_VARARGS	/* if you're using precompiled headers */
X  #  endif
X  # endif
X! # ifdef LSC
X! #define KR1ED	/* for compilers which can't handle defined() */
X! # endif
X! # ifdef AZTEC
X! #define KR1ED	/* Lightspeed C & Aztec can't handle defined() yet */
X! # endif
X! #endif	/* MACOS */
X! 
X! #ifdef VMS      /* really old compilers need special handling, detected here */
X! # ifdef VAXC    /* must use CC/DEFINE=ANCIENT_VAXC for vaxc v2.2 or older */
X! #  ifdef ANCIENT_VAXC   /* vaxc v2.2 and earlier [lots of warnings to come] */
X! #   define KR1ED        /* simulate defined() */
X! #   define USE_VARARGS
X! #  else                 /* vaxc v2.3,2.4,or 3.x */
X! #   if defined(PROTOTYPING_ON)  /* this breaks 2.2 (*forces* use of ANCIENT)*/
X! #    define __STDC__ 0  /* vaxc is not yet ANSI compliant, but close enough */
X! #    define signed      /* well, almost close enough */
X! #include <stddef.h>
X! #   endif
X! #   define USE_STDARG
X! #  endif
X! # endif /*VAXC*/
X! # ifdef VERYOLD_VMS     /* v4.5 or earlier */
X! #  define USE_OLDARGS   /* <varargs.h> is there, vprintf & vsprintf aren't */
X! #  ifdef USE_VARARGS
X! #   undef USE_VARARGS
X! #  endif
X! #  ifdef USE_STDARG
X! #   undef USE_STDARG
X! #  endif
X! # endif
X! #endif /*VMS*/
X  
X  
X  #ifdef KR1ED		/* For compilers which cannot handle defined() */
X***************
X*** 99,105 ****
X  #define WIZARD  "izchak" /* the person allowed to use the -D option */
X  # else
X  #define WIZARD
X! #define WIZARD_NAME "johnny"
X  # endif
X  #endif
X  
X--- 141,147 ----
X  #define WIZARD  "izchak" /* the person allowed to use the -D option */
X  # else
X  #define WIZARD
X! #define WIZARD_NAME "izchak"
X  # endif
X  #endif
X  
X*** include/Old/extern.h	Sun Jun  3 16:04:10 1990
X--- include/extern.h	Sat Jun  2 19:44:37 1990
X***************
X*** 177,183 ****
X--- 177,185 ----
X  #endif
X  E int NDECL(dodrop);
X  E boolean FDECL(flooreffects, (struct obj *,int,int));
X+ #ifdef ALTARS
X  E void FDECL(doaltarobj, (struct obj *));
X+ #endif
X  E boolean FDECL(canletgo, (struct obj *,const char *));
X  E void FDECL(dropx, (struct obj *));
X  E void FDECL(dropy, (struct obj *));
X***************
X*** 221,227 ****
X  E int NDECL(Boots_on);
X  E int NDECL(Gloves_on);
X  E int NDECL(Helmet_on);
X! E int FDECL(select_off, (struct obj *otmp));
X  E int NDECL(take_off);
X  #endif
X  E void FDECL(off_msg, (struct obj *));
X--- 223,229 ----
X  E int NDECL(Boots_on);
X  E int NDECL(Gloves_on);
X  E int NDECL(Helmet_on);
X! E int FDECL(select_off, (struct obj *));
X  E int NDECL(take_off);
X  #endif
X  E void FDECL(off_msg, (struct obj *));
X***************
X*** 271,277 ****
X  E void FDECL(fall_down, (struct monst *,int));
X  E int FDECL(dogfood, (struct monst *,struct obj *));
X  E int FDECL(inroom, (XCHAR_P,XCHAR_P));
X! E int FDECL(tamedog, (struct monst *,struct obj *));
X  
X  /* ### dogmove.c ### */
X  
X--- 273,279 ----
X  E void FDECL(fall_down, (struct monst *,int));
X  E int FDECL(dogfood, (struct monst *,struct obj *));
X  E int FDECL(inroom, (XCHAR_P,XCHAR_P));
X! E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
X  
X  /* ### dogmove.c ### */
X  
X***************
X*** 299,305 ****
X--- 301,309 ----
X  E int NDECL(opentin);
X  E int NDECL(unfaint);
X  #endif
X+ #ifdef POLYSELF
X  E boolean FDECL(is_edible, (struct obj *));
X+ #endif
X  E void NDECL(init_uhunger);
X  E int NDECL(Hear_again);
X  E void NDECL(reset_eat);
X***************
X*** 320,325 ****
X--- 324,332 ----
X  
X  E int NDECL(done1);
X  E int NDECL(done2);
X+ #ifdef OVERLAY
X+ E int NDECL(done_intr);
X+ #endif
X  E void FDECL(done_in_by, (struct monst *));
X  E void VDECL(panic, (const char *,...));
X  E void FDECL(done, (int));
X***************
X*** 530,536 ****
X  /* ### makemon.c ### */
X  
X  E struct monst *FDECL(makemon, (struct permonst *,int,int));
X! E void FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
X  E int FDECL(goodpos, (int,int, struct permonst *));
X  E void FDECL(rloc, (struct monst *));
X  E void FDECL(vloc, (struct monst *));
X--- 537,543 ----
X  /* ### makemon.c ### */
X  
X  E struct monst *FDECL(makemon, (struct permonst *,int,int));
X! E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
X  E int FDECL(goodpos, (int,int, struct permonst *));
X  E void FDECL(rloc, (struct monst *));
X  E void FDECL(vloc, (struct monst *));
X***************
X*** 575,580 ****
X--- 582,590 ----
X  
X  E int FDECL(somex, (struct mkroom *));
X  E int FDECL(somey, (struct mkroom *));
X+ #ifdef OVERLAY
X+ E int FDECL(comp, (genericptr_t, genericptr_t));
X+ #endif
X  #ifdef ORACLE
X  E boolean FDECL(place_oracle, (struct mkroom *,int *,int *,int *));
X  #endif
X***************
X*** 582,588 ****
X--- 592,600 ----
X  E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
X  E void FDECL(dodoor, (int,int,struct mkroom *));
X  E void FDECL(mktrap, (int,int,struct mkroom *));
X+ #ifdef FOUNTAINS
X  E void FDECL(mkfount, (int,struct mkroom *));
X+ #endif
X  
X  /* ### mkmaze.c ### */
X  
X***************
X*** 597,603 ****
X  
X  /* ### mkobj.c ### */
X  
X! E struct obj *FDECL(mkobj_at, (CHAR_P,int,int));
X  E struct obj *FDECL(mksobj_at, (int,int,int));
X  E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
X  E int NDECL(rndmonnum);
X--- 609,615 ----
X  
X  /* ### mkobj.c ### */
X  
X! E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
X  E struct obj *FDECL(mksobj_at, (int,int,int));
X  E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
X  E int NDECL(rndmonnum);
X***************
X*** 625,636 ****
X--- 637,652 ----
X  /* ### mkroom.c ### */
X  
X  E void FDECL(mkroom, (int));
X+ #if defined(ALTARS) && defined(THEOLOGY)
X  E void FDECL(shrine_pos, (int *, int*, struct mkroom *));
X+ #endif
X  E boolean FDECL(nexttodoor, (int,int));
X  E boolean FDECL(has_dnstairs, (struct mkroom *));
X  E boolean FDECL(has_upstairs, (struct mkroom *));
X  E int FDECL(dist2, (int,int,int,int));
X+ #ifdef THRONES
X  E struct permonst *NDECL(courtmon);
X+ #endif
X  
X  /* ### mon.c ### */
X  
X***************
X*** 801,811 ****
X--- 817,830 ----
X  E char *FDECL(makeplural, (const char *));
X  E char *FDECL(makesingular, (const char *));
X  E struct obj *FDECL(readobjnam, (char *));
X+ E int FDECL(rnd_class, (int,int));
X  
X  /* ### options.c ### */
X  
X  E void NDECL(initoptions);
X  E void FDECL(assign_graphics, (unsigned int *, int));
X+ E void NDECL(assign_ibm_graphics);
X+ E void NDECL(assign_dec_graphics);
X  E void FDECL(parseoptions, (char *,BOOLEAN_P));
X  E int NDECL(doset);
X  E int NDECL(dotogglepickup);
X***************
X*** 882,888 ****
X  E void FDECL(pickup, (int));
X  E struct obj *FDECL(pick_obj, (struct obj *));
X  E int NDECL(doloot);
X- E void NDECL(get_all_from_box);
X  E void FDECL(use_container, (struct obj *, int));
X  E void FDECL(inc_cwt, (struct obj *, struct obj *));
X  E void FDECL(delete_contents, (struct obj *));
X--- 901,906 ----
X***************
X*** 1035,1040 ****
X--- 1053,1067 ----
X  E boolean FDECL(IS_FURNITURE, (unsigned));
X  #endif /* STUPID_CPP */
X  
X+ /* ### random.c ### */
X+ 
X+ #ifdef RANDOM
X+ E void FDECL(srandom, (unsigned));
X+ E char * FDECL(initstate, (unsigned,char *,int));
X+ E char * FDECL(setstate, (char *));
X+ E long NDECL(random);
X+ #endif /* RANDOM */
X+ 
X  /* ### read.c ### */
X  
X  E int NDECL(doread);
X***************
X*** 1123,1129 ****
X--- 1150,1158 ----
X  E void FDECL(replshk, (struct monst *,struct monst *));
X  E int NDECL(inshop);
X  E int FDECL(inhishop, (struct monst *));
X+ #ifdef SOUNDS
X  E boolean FDECL(tended_shop, (struct mkroom *));
X+ #endif
X  E void FDECL(obfree, (struct obj *,struct obj *));
X  E int NDECL(dopay);
X  E void FDECL(home_shk, (struct monst *));
X***************
X*** 1132,1137 ****
X--- 1161,1167 ----
X  E void FDECL(pay_for_door, (int,int,const char *));
X  E void FDECL(addtobill, (struct obj *,BOOLEAN_P));
X  E void FDECL(splitbill, (struct obj *,struct obj *));
X+ E void FDECL(subfrombill, (struct obj *));
X  E void FDECL(sellobj, (struct obj *));
X  E int FDECL(doinvbill, (int));
X  E int FDECL(shkcatch, (struct obj *));
X***************
X*** 1278,1283 ****
X--- 1308,1314 ----
X  E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P));
X  E struct trap *FDECL(maketrap, (int,int,int));
X  E int FDECL(teleok, (int,int));
X+ E void FDECL(fall_through, (BOOLEAN_P));
X  E void FDECL(dotrap, (struct trap *));
X  E int FDECL(mintrap, (struct monst *));
X  E void FDECL(selftouch, (const char *));
X***************
X*** 1313,1320 ****
X--- 1344,1353 ----
X  E schar FDECL(find_roll_to_hit, (struct monst *));
X  E boolean FDECL(attack, (struct monst *));
X  E boolean FDECL(hmon, (struct monst *,struct obj *,int));
X+ #ifdef POLYSELF
X  E int FDECL(damageum, (struct monst *, struct attack *));
X  E void FDECL(missum, (struct monst *, struct attack *));
X+ #endif
X  E int FDECL(passive, (struct monst *,BOOLEAN_P,int,BOOLEAN_P));
X  E void FDECL(stumble_onto_mimic, (struct monst *));
X  
X***************
X*** 1353,1362 ****
X--- 1386,1398 ----
X  
X  /* ### vault.c ### */
X  
X+ E boolean FDECL(grddead, (struct monst *));
X  E void NDECL(invault);
X  E int FDECL(gd_move, (struct monst *));
X  E void NDECL(paygd);
X+ #ifdef SOUNDS
X  E boolean NDECL(gd_sound);
X+ #endif
X  
X  /* ### version.c ### */
X  
X*** include/Old/flag.h	Sun Jun  3 16:05:14 1990
X--- include/flag.h	Wed May 23 17:54:55 1990
X***************
X*** 51,65 ****
X  	boolean  silent;	/* whether the bell rings or not */
X  	boolean  pickup;	/* whether you pickup or move and look */
X  	boolean  num_pad;	/* use numbers for movement commands */
X  #ifdef TEXTCOLOR
X  	boolean  use_color;	/* use color graphics */
X  #endif
X  #ifdef DGK
X  	boolean  IBMBIOS;	/* whether we can use a BIOS call for
X  				 * redrawing the screen and character input */
X- #ifdef DECRAINBOW
X- 	boolean  DECRainbow;	/* Used for DEC Rainbow graphics. */
X- #endif
X  	boolean  rawio;		/* Whether can use rawio (IOCTL call) */
X  #endif
X  #ifdef MACOS
X--- 51,68 ----
X  	boolean  silent;	/* whether the bell rings or not */
X  	boolean  pickup;	/* whether you pickup or move and look */
X  	boolean  num_pad;	/* use numbers for movement commands */
X+ 	boolean  help;		/* look in data file for info about stuff */
X+ 	boolean  IBMgraphics;	/* use IBM extended character set */
X+ 	boolean  DECgraphics;	/* use DEC VT-xxx extended character set */
X  #ifdef TEXTCOLOR
X  	boolean  use_color;	/* use color graphics */
X  #endif
X+ #ifdef AMIFLUSH
X+ 	boolean amiflush;	/* kill typeahead */
X+ #endif
X  #ifdef DGK
X  	boolean  IBMBIOS;	/* whether we can use a BIOS call for
X  				 * redrawing the screen and character input */
X  	boolean  rawio;		/* Whether can use rawio (IOCTL call) */
X  #endif
X  #ifdef MACOS
X*** include/Old/global.h	Sun Jun  3 16:05:36 1990
X--- include/global.h	Wed May 23 17:58:10 1990
X***************
X*** 5,13 ****
X  #ifndef GLOBAL_H
X  #define	GLOBAL_H
X  
X! #ifndef VMS
X! # include <stdio.h>
X! #endif
X  
X  
X  /* #define BETA		/* if a beta-test copy  [MRS] */
X--- 5,11 ----
X  #ifndef GLOBAL_H
X  #define	GLOBAL_H
X  
X! #include <stdio.h>
X  
X  
X  /* #define BETA		/* if a beta-test copy  [MRS] */
X***************
X*** 80,86 ****
X   * prototypes for the ANSI compilers so people quit trying to fix the prototypes
X   * to match the standard and thus lose the typechecking.
X   */
X! #if (defined(MSDOS) && !defined(TOS)) || defined (AMIGA) || defined(THINKC4)
X  # define CHAR_P char
X  # define SCHAR_P schar
X  # define UCHAR_P uchar
X--- 78,84 ----
X   * prototypes for the ANSI compilers so people quit trying to fix the prototypes
X   * to match the standard and thus lose the typechecking.
X   */
X! #if (defined(MSDOS) && !defined(TOS)) || defined (AMIGA) || defined(THINKC4) || defined(VAXC)
X  # define CHAR_P char
X  # define SCHAR_P schar
X  # define UCHAR_P uchar
X***************
X*** 128,134 ****
X  
X  #if defined(VMS) && !defined(VMSCONF_H)
X  # include "vmsconf.h"
X- # include <stdio.h>
X  #endif
X  
X  #if defined(UNIX) && !defined(UNIXCONF_H)
X--- 126,131 ----
X*** include/Old/hack.h	Sun Jun  3 16:05:58 1990
X--- include/hack.h	Thu May 31 22:16:03 1990
X***************
X*** 124,151 ****
X  #endif /* MSDOS */
X  
X  /* Macro for a few items that are only static if we're not overlaid.... */
X! #if defined(OVERLAY) && (defined(OVL0) || defined(OVL1) || defined(OVL2) || defined(OVLB))
X! # define OSTATIC extern
X! # define XSTATIC
X! # define OVERLAY_SPLIT
X  # ifdef OVLB
X! #  define VSTATIC
X  # else
X! #  define VSTATIC extern
X  # endif
X  #else
X! # define OSTATIC static
X! # define XSTATIC static
X! # define VSTATIC static
X  #endif
X  
X  /* Unless explicit control is being taken of what is linked where, */
X  /* always compile everything */
X! #if !defined(OVERLAY) || (!defined(OVL0) && !defined(OVL1) && !defined(OVL2) && !defined(OVLB))
X! # define OVL0	/* Highest priority */
X  # define OVL1
X! # define OVL2	/* Lowest specified priority */
X! # define OVLB	/* The base overlay segment */
X  #endif
X  
X  #endif /* HACK_H /**/
X--- 124,157 ----
X  #endif /* MSDOS */
X  
X  /* Macro for a few items that are only static if we're not overlaid.... */
X! #if defined(OVERLAY)
X! # define STATIC_PTR
X! #else
X! # define STATIC_PTR static
X! #endif
X! 
X! #if defined(OVERLAY) && (defined(OVL0) || defined(OVL1) || defined(OVL2) || defined(OVL3) || defined(OVLB))
X! # define STATIC_DCL extern
X! # define STATIC_OVL
X  # ifdef OVLB
X! #  define STATIC_VAR
X  # else
X! #  define STATIC_VAR extern
X  # endif
X  #else
X! # define STATIC_DCL static
X! # define STATIC_OVL static
X! # define STATIC_VAR static
X  #endif
X  
X  /* Unless explicit control is being taken of what is linked where, */
X  /* always compile everything */
X! #if !defined(OVERLAY) || (!defined(OVL0) && !defined(OVL1) && !defined(OVL2) && !defined(OVL3) && !defined(OVLB))
X! # define OVL0  /* Highest priority */
X  # define OVL1
X! # define OVL2
X! # define OVL3  /* Lowest specified priority */
X! # define OVLB  /* The base overlay segment */
X  #endif
X  
X  #endif /* HACK_H /**/
X*** include/Old/macconf.h	Sun Jun  3 16:06:29 1990
X--- include/macconf.h	Tue May  8 19:53:45 1990
X***************
X*** 64,70 ****
X  #include	<Stdlib.h>
X  #include	<String.h>
X  #undef getuid
X! #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
X  #ifdef stdout
X  #undef stdout
X  #define stdout (FILE *)NULL
X--- 64,70 ----
X  #include	<Stdlib.h>
X  #include	<String.h>
X  #undef getuid
X! #ifdef CUSTOM_IO
X  #ifdef stdout
X  #undef stdout
X  #define stdout (FILE *)NULL
X***************
X*** 144,149 ****
X--- 144,152 ----
X  	short	ascent,descent,height,charWidth;
X  	short	maxRow,maxCol;
X  	char	**screen;
X+ 	char	**scrAttr;
X+ 	char	curHilite;
X+ 	char	curAttr;
X  	short	inColor;
X  	short	auxFileVRefNum;
X  	short	recordVRefNum;
X***************
X*** 150,156 ****
X  	SysEnvRec	system;
X  	char	*keyMap;
X  	short	color[8];
X! 	CursHandle	cursor[8];
X  	Handle	shortMBarHandle,
X  			fullMBarHandle;
X  } term_info;
X--- 153,159 ----
X  	SysEnvRec	system;
X  	char	*keyMap;
X  	short	color[8];
X! 	CursHandle	cursor[9];  /* self-contained cursors */
X  	Handle	shortMBarHandle,
X  			fullMBarHandle;
X  } term_info;
X***************
X*** 182,191 ****
X  #define	LEFT_OFFSET	10
X  
X  /* for macflags variable */
X- #define	fScreenKluges		0x3000
X- #define	fFullScrKluge		0x2000
X- #define	fCornScrKluge		0x1000
X- #define	fDisplayKluge		0x800
X  #define	fMoveWRTMouse		0x400
X  #define	fZoomOnContextSwitch		0x200
X  #define	fUseCustomFont		0x100
X--- 185,190 ----
X***************
X*** 194,200 ****
X  #define	fExtCmdSeq1			0x20
X  #define	fExtCmdSeq2			0x10
X  #define	fExtCmdSeq3			0x08
X! #define	fDoNonKeyEvt		0x02
X  #define	fDoUpdate			0x01
X  
X  
X--- 193,200 ----
X  #define	fExtCmdSeq1			0x20
X  #define	fExtCmdSeq2			0x10
X  #define	fExtCmdSeq3			0x08
X! #define	fDoNonKeyEvt		0x06
X! #define	fDoMenus		0x02
X  #define	fDoUpdate			0x01
X  
X  
X***************
X*** 209,214 ****
X--- 209,222 ----
X  #define MONST_DATA	101
X  #define OBJECT_DATA	104
X  #define	DEFAULT_DATA	100
X+ 
X+ #define SEG_ZAP		0x0020
X+ #define SEG_SPELL	0x0010
X+ #define SEG_POTION	0x0008
X+ #define SEG_EAT		0x0004
X+ #define SEG_DO		0x0002
X+ #define SEG_APPLY	0x0001
X+ extern long segments;	/* defined in mac.c */
X  
X  #include "extern.h"
X  
X*** include/Old/obj.h	Sun Jun  3 16:08:03 1990
X--- include/obj.h	Sun Feb 25 14:43:57 1990
X***************
X*** 92,98 ****
X  #define Is_mbag(otmp)	(otmp->otyp == BAG_OF_HOLDING || otmp->otyp == BAG_OF_TRICKS)
X  
X  #define is_sword(otmp)	(otmp->otyp >= SHORT_SWORD && otmp->otyp <= KATANA)
X! #define bimanual(otmp)	(otmp->olet == WEAPON_SYM && objects[otmp->otyp].oc_bimanual)
X  
X  #define is_rustprone(otmp)	(objects[otmp->otyp].oc_material == METAL)
X  #define is_corrodeable(otmp)	(objects[otmp->otyp].oc_material == COPPER)
X--- 92,98 ----
X  #define Is_mbag(otmp)	(otmp->otyp == BAG_OF_HOLDING || otmp->otyp == BAG_OF_TRICKS)
X  
X  #define is_sword(otmp)	(otmp->otyp >= SHORT_SWORD && otmp->otyp <= KATANA)
X! #define bimanual(otmp)	((otmp->olet == WEAPON_SYM || otmp->otyp == UNICORN_HORN) && objects[otmp->otyp].oc_bimanual)
X  
X  #define is_rustprone(otmp)	(objects[otmp->otyp].oc_material == METAL)
X  #define is_corrodeable(otmp)	(objects[otmp->otyp].oc_material == COPPER)
X*** include/Old/objclass.h	Sun Jun  3 16:08:15 1990
X--- include/objclass.h	Fri Apr 13 19:22:25 1990
X***************
X*** 73,79 ****
X  extern struct small_objclass sm_obj[];
X  extern struct objclass *objects;
X  #else
X! extern struct objclass objects[];
X  #endif    /* MACOS && !MAKEDEFS_C */
X  
X  /* definitions of all object-symbols */
X--- 73,79 ----
X  extern struct small_objclass sm_obj[];
X  extern struct objclass *objects;
X  #else
X! extern struct objclass NEARDATA objects[];
X  #endif    /* MACOS && !MAKEDEFS_C */
X  
X  /* definitions of all object-symbols */
X*** include/Old/patchlevel.h	Sun Jun  3 16:08:27 1990
X--- include/patchlevel.h	Sun Jun  3 15:57:05 1990
X***************
X*** 84,87 ****
X   *  and the usual bug fixes and hole plugs
X   */
X  
X! #define PATCHLEVEL	7
X--- 84,100 ----
X   *  and the usual bug fixes and hole plugs
X   */
X  
X! /*
X!  *  Patch 8, June 3, 1990
X!  *  further debug and refine Macintosh port
X!  *  refine the overlay manager, rearrange the OVLx breakdown for better
X!  *	efficiency, rename the overlay macros, and split off the overlay
X!  *	instructions to Install.ovl
X!  *  introduce NEARDATA for better Amiga efficiency
X!  *  support for more VMS versions (courtesy Joshua Delahunty and Pat Rankin)
X!  *  more const fixes
X!  *  better support for common graphics (DEC VT and IBM)
X!  *  and a number of simple fixes and consistency extensions
X!  */
X! 
X! #define PATCHLEVEL	8
X*** include/Old/pcconf.h	Sun Jun  3 16:08:39 1990
X--- include/pcconf.h	Wed May 23 17:54:59 1990
X***************
X*** 42,50 ****
X  extern const char *configfile;
X  
X  #ifdef DGK
X- /*	Selectable DGK options:
X-  */
X- /*#define DECRAINBOW	/* enable use of DEC Rainbow graphics */
X  
X  /*	Non-Selectable DGK options:
X   */
X--- 42,47 ----
X*** include/Old/permonst.h	Sun Jun  3 16:08:50 1990
X--- include/permonst.h	Mon Mar  5 19:21:52 1990
X***************
X*** 61,69 ****
X  #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
X  			*mons;
X  #else
X! 			mons[];		/* the master list of monster types */
X  #endif
X! extern struct permonst playermon, *uasmon;	/* you in the same terms */
X  
X  #if defined(SMALLDATA) && defined(MAKEDEFS_C)
X  
X--- 61,70 ----
X  #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
X  			*mons;
X  #else
X! 	NEARDATA	mons[];		/* the master list of monster types */
X  #endif
X! extern struct permonst NEARDATA playermon, NEARDATA *uasmon;
X! 						/* you in the same terms */
X  
X  #if defined(SMALLDATA) && defined(MAKEDEFS_C)
X  
X*** include/Old/system.h	Sun Jun  3 16:09:43 1990
X--- include/system.h	Tue May  8 19:53:04 1990
X***************
X*** 10,18 ****
X--- 10,22 ----
X  /* some old <sys/types.h> may not define off_t and size_t; if your system is
X   * one of these, define them by hand below
X   */
X+ #ifndef VAXC
X  #if !defined(THINKC4) && !defined(AMIGA) && !defined(MACOS)
X  # include <sys/types.h>
X  #endif
X+ #else   /*VAXC*/
X+ #include <types.h>
X+ #endif  /*VAXC*/
X  
X  #if defined(TOS) && defined(__GNUC__) && !defined(_SIZE_T)
X  # define _SIZE_T
X***************
X*** 21,27 ****
X--- 25,33 ----
X  #if defined(MSDOS) || ((defined(AMIGA) || defined(MACOS)) && !defined(THINKC4))
X  # ifndef _SIZE_T
X  #  define _SIZE_T
X+ #  if !(defined(MSDOS) && defined(_SIZE_T_DEFINED)) /* MSC 5.1 */
X  typedef unsigned int	size_t;
X+ #  endif
X  # endif
X  #endif
X  
X***************
X*** 63,69 ****
X  E void FDECL(exit, (int));
X  # endif /* MSDOS */
X  E void FDECL(free, (genericptr_t));
X! # ifdef AMIGA
X  E int FDECL(perror, (const char *));
X  # else
X  #  ifndef MACOS
X--- 69,75 ----
X  E void FDECL(exit, (int));
X  # endif /* MSDOS */
X  E void FDECL(free, (genericptr_t));
X! # if defined(AMIGA) && !defined(AZTEC_50)
X  E int FDECL(perror, (const char *));
X  # else
X  #  ifndef MACOS
X***************
X*** 79,84 ****
X--- 85,91 ----
X  # endif
X  #endif
X  
X+ #ifndef AZTEC_50	/* Already defined in include files */
X  #ifdef ULTRIX
X  E long FDECL(lseek, (int,off_t,int));
X    /* Ultrix 3.0 man page mistakenly says it returns an int. */
X***************
X*** 99,104 ****
X--- 106,112 ----
X  E int FDECL(chdir, (char *));
X  E char *FDECL(getcwd, (char *,int));
X  #endif
X+ #endif  /* AZTEC_50 */
X  
X  #ifdef TOS
X  E int FDECL(creat, (const char *, int));
X***************
X*** 207,213 ****
X  # define OLD_SPRINTF
X  E char *sprintf();
X  #else
X! # ifndef TOS	/* problem with prototype mismatches with <stdio.h> */
X  E int FDECL(sprintf, (char *,const char *,...));
X  # endif
X  #endif
X--- 215,221 ----
X  # define OLD_SPRINTF
X  E char *sprintf();
X  #else
X! # if !defined(TOS) && !defined(AZTEC_50) /* problem with prototype mismatches */
X  E int FDECL(sprintf, (char *,const char *,...));
X  # endif
X  #endif
X***************
X*** 273,279 ****
X  E struct tm *FDECL(localtime, (const time_t *));
X  # endif
X  
X! # if defined(ULTRIX) || defined(SYSV) || defined(MSDOS)
X  E time_t FDECL(time, (time_t *));
X  # else
X  E long FDECL(time, (time_t *));
X--- 281,287 ----
X  E struct tm *FDECL(localtime, (const time_t *));
X  # endif
X  
X! # if defined(ULTRIX) || defined(SYSV) || defined(MSDOS) || defined(VMS)
X  E time_t FDECL(time, (time_t *));
X  # else
X  E long FDECL(time, (time_t *));
X*** include/Old/termcap.h	Sun Jun  3 16:09:58 1990
X--- include/termcap.h	Wed May 23 17:56:51 1990
X***************
X*** 12,19 ****
X  
X  /* might display need graphics code? */
X  #if !defined(AMIGA) && !defined(TOS) && !defined(MACOS)
X! # if defined(TERMLIB) || defined(DECRAINBOW) || defined(OS2)
X  #  define ASCIIGRAPH
X-    extern boolean IBMgraphics;      /* does terminal use IBM extended ASCII? */
X  # endif
X  #endif
X--- 12,18 ----
X  
X  /* might display need graphics code? */
X  #if !defined(AMIGA) && !defined(TOS) && !defined(MACOS)
X! # if defined(TERMLIB) || defined(OS2)
X  #  define ASCIIGRAPH
X  # endif
X  #endif
X*** include/Old/tradstdc.h	Sun Jun  3 16:10:20 1990
X--- include/tradstdc.h	Fri May 18 18:39:44 1990
X***************
X*** 32,39 ****
X  /* #define USE_VARARGS		/* use <varargs.h> instead of <stdarg.h> */
X  /* #define USE_OLDARGS		/* don't use any variable argument facilites */
X  
X! #if defined(__STDC__) || defined(VMS)
X! # if !(defined(AMIGA) && defined(AZTEC_C) || defined(USE_VARARGS) || defined(USE_OLDARGS))
X  #   define USE_STDARG
X  # endif
X  #endif
X--- 32,42 ----
X  /* #define USE_VARARGS		/* use <varargs.h> instead of <stdarg.h> */
X  /* #define USE_OLDARGS		/* don't use any variable argument facilites */
X  
X! #ifdef __STDC__
X! # if defined(__GNUC__) && defined(VMS)
X! #   define USE_OLDARGS          /* <stdarg.h> is missing for some versions */
X! # endif
X! # if !defined(USE_VARARGS) && !defined(USE_OLDARGS)
X  #   define USE_STDARG
X  # endif
X  #endif
X***************
X*** 76,82 ****
X  #endif /* NEED_VARARGS */
X  
X  
X! #if defined(__STDC__) || defined(MSDOS) || defined(THINKC4)
X  
X  /* Used for robust ANSI parameter forward declarations:
X   * int VDECL(sprintf, (char *, const char *, ...));
X--- 79,86 ----
X  #endif /* NEED_VARARGS */
X  
X  
X! /* Unfortunately amiga aztec 5.0 doesn't handle prototyping chars correctly */
X! #if (defined(__STDC__) && !defined(AZTEC_50)) || defined(MSDOS) || defined(THINKC4)
X  
X  /* Used for robust ANSI parameter forward declarations:
X   * int VDECL(sprintf, (char *, const char *, ...));
X***************
X*** 124,132 ****
X--- 128,138 ----
X  #  endif
X  # endif
X  
X+ #ifndef AZTEC_50	/* Take out when aztec handles prototyping OK */
X  # define const
X  # define signed
X  # define volatile
X+ #endif
X  
X  #endif /* __STDC__ */
X  
X*** include/Old/trampoli.h	Sun Jun  3 16:10:34 1990
X--- include/trampoli.h	Thu May 31 22:12:50 1990
X***************
X*** 1,4 ****
X! /*	SCCS Id: @(#)trampoli.h 	3.0	89/11/15	  */
X  /* Copyright (c) 1989, by Norm Meluch and Stephen Spackman	  */
X  /* NetHack may be freely redistributed.  See license for details. */
X  
X--- 1,4 ----
X! /*	SCCS Id: @(#)trampoli.h 	3.0	90/05/31	  */
X  /* Copyright (c) 1989, by Norm Meluch and Stephen Spackman	  */
X  /* NetHack may be freely redistributed.  See license for details. */
X  
X***************
X*** 90,97 ****
X  
X  
X  /* ### end.c ### */
X! #define done1() done1_()
X! #define done2() done2_()
X  
X  
X  /* ### engrave.c ### */
X--- 90,102 ----
X  
X  
X  /* ### end.c ### */
X! #define done1()     done1_()
X! #define done2()     done2_()
X! #define hangup()    hangup_()
X! #define done_intr() done_intr_()
X! #if defined(UNIX) || defined (VMS)
X! #define done_hangup() done_hangup_()
X! #endif /* UNIX || VMS */
X  
X  
X  /* ### engrave.c ### */
X***************
X*** 117,129 ****
X  
X  
X  /* ### ioctl.c ### */
X- /*
X  #ifdef UNIX
X! #ifdef SUSPEND
X  #define dosuspend() dosuspend_()
X! #endif
X! #endif
X! */
X  
X  
X  /* ### lock.c ### */
X--- 122,132 ----
X  
X  
X  /* ### ioctl.c ### */
X  #ifdef UNIX
X! # ifdef SUSPEND
X  #define dosuspend() dosuspend_()
X! # endif /* SUSPEND */
X! #endif /* UNIX */
X  
X  
X  /* ### lock.c ### */
X***************
X*** 134,141 ****
X  #define picklock()  picklock_()
X  
X  
X  /* ### mondata.c ### */
X! #define canseemon(x)	canseemon_(x)
X  
X  
X  /* ### o_init.c ### */
X--- 137,149 ----
X  #define picklock()  picklock_()
X  
X  
X+ /* ### mklev.c ### */
X+ #define comp(x, y)  comp_(x, y)
X+ 
X+ 
X  /* ### mondata.c ### */
X! /* See comment in trampoli.c before uncommenting canseemon. */
X! /* #define canseemon(x)	canseemon_(x) */
X  
X  
X  /* ### o_init.c ### */
X***************
X*** 155,164 ****
X  #define dohelp()     dohelp_()
X  #define dohistory()  dohistory_()
X  #ifdef UNIX
X! #ifdef SHELL
X  #define dosh()       dosh_()
X! #endif
X! #endif
X  #define dowhatdoes() dowhatdoes_()
X  #define dowhatis()   dowhatis_()
X  
X--- 163,173 ----
X  #define dohelp()     dohelp_()
X  #define dohistory()  dohistory_()
X  #ifdef UNIX
X! #define intruph()    intruph_()
X! # ifdef SHELL
X  #define dosh()       dosh_()
X! # endif /* SHELL */
X! #endif /* UNIX */
X  #define dowhatdoes() dowhatdoes_()
X  #define dowhatis()   dowhatis_()
X  
X***************
X*** 215,221 ****
X  
X  /* ### spell.c ### */
X  #ifdef SPELLS
X! #define learn()	learn_()
X  #define docast()   docast_()
X  #define dovspell() dovspell_()
X  #endif
X--- 224,230 ----
X  
X  /* ### spell.c ### */
X  #ifdef SPELLS
X! #define learn()    learn_()
X  #define docast()   docast_()
X  #define dovspell() dovspell_()
X  #endif
X***************
X*** 234,240 ****
X  #define float_down() float_down_()
X  
X  /* ### version.c ### */
X! #define doversion() doversion_()
X  #define doextversion() doextversion_()
X  
X  /* ### wield.c ### */
X--- 243,249 ----
X  #define float_down() float_down_()
X  
X  /* ### version.c ### */
X! #define doversion()    doversion_()
X  #define doextversion() doextversion_()
X  
X  /* ### wield.c ### */
X*** include/Old/unixconf.h	Sun Jun  3 16:10:58 1990
X--- include/unixconf.h	Tue May  8 19:53:42 1990
X***************
X*** 45,50 ****
X--- 45,51 ----
X  /* #define MICROPORT_286_BUG /* Changes needed in termcap.c to get it to
X  			   run with Microport Sys V/AT version 2.4.
X  			   By Jay Maynard */
X+ /* #define AIXPS_2BUG	/* avoid a problem with little_to_big() optimization */
X  
X  /* #define RANDOM	/* if neither random/srandom nor lrand48/srand48
X  			   is available from your system */
X*** include/Old/vmsconf.h	Sun Jun  3 16:11:21 1990
X--- include/vmsconf.h	Fri May 18 18:39:50 1990
X***************
X*** 6,19 ****
X  #ifndef VMSCONF_H
X  #define VMSCONF_H
X  
X! #undef UNIX
X! #undef HACKDIR
X! #define HACKDIR	"USR$ROOT0:[GENTZEL.NHDIR]"
X  #undef RECORD
X  #define RECORD "record;1"
X  
X! #undef COMPRESS
X! #undef ZEROCOMP
X  
X  /*
X   * If you define MAIL, then the player will be notified of new broadcasts
X--- 6,56 ----
X  #ifndef VMSCONF_H
X  #define VMSCONF_H
X  
X! /*
X!  * Edit these to choose values appropriate for your site.
X!  * WIZARD is the username allowed to use the debug option of nethack; no harm
X!  *   is done by leaving it as a username that doesn't exist at your site.
X!  * HACKDIR can be overridden at run-time with the logical name HACKDIR, as in
X!  *   $ define hackdir disk$users:[games.nethack]
X!  */
X! #define Local_WIZARD    "GENTZEL"               /*(must be uppercase)*/
X! #define Local_HACKDIR   "USR$ROOT0:[GENTZEL.NHDIR]"
X! 
X! /*
X!  * This section cleans up the stuff done in config.h so that it
X!  * shouldn't need to be modified.  It's conservative so that if
X!  * config.h is actually edited, the changes won't impact us.
X!  */
X! #ifdef UNIX
X! # undef UNIX
X! #endif
X! #ifdef HACKDIR
X! # undef HACKDIR
X! #endif
X! #ifdef WIZARD
X! # undef WIZARD
X! #endif
X! #ifdef WIZARD_NAME
X! # undef WIZARD_NAME
X! #endif
X! #define HACKDIR Local_HACKDIR
X! #ifndef KR1ED
X! # define WIZARD Local_WIZARD
X! # define WIZARD_NAME WIZARD
X! #else
X! # define WIZARD 1
X! # define WIZARD_NAME Local_WIZARD
X! #endif
X! 
X  #undef RECORD
X  #define RECORD "record;1"
X  
X! #ifdef COMPRESS
X! # undef COMPRESS
X! #endif
X! #ifdef ZEROCOMP
X! # undef ZEROCOMP
X! #endif
X  
X  /*
X   * If you define MAIL, then the player will be notified of new broadcasts
X***************
X*** 21,31 ****
X   */
X  #define	MAIL
X  
X! #define RANDOM		/* if neither random/srandom nor lrand48/srand48
X! 			   is available from your system */
X  
X  #define	FCMASK	0660	/* file creation mask */
X  
X  
X  /*
X   * The remainder of the file should not need to be changed.
X--- 58,80 ----
X   */
X  #define	MAIL
X  
X! #define RANDOM          /* use others/random.c instead of vaxcrtl rand/srand */
X  
X  #define	FCMASK	0660	/* file creation mask */
X  
X+ /* vaxcrtl object library is not available on MicroVMS (4.4 thru 4.6(.7?))
X+    unless it's retreived from a full VMS system or leftover from a really
X+    ancient version of VAXC.  #define no_c$$translate and also create a
X+    linker options file called vaxcrtl.opt containing one line
X+ sys$share:vaxcrtl/shareable
X+    to link against the vaxcrtl shareable image.  Then include ',vaxcrtl/opt'
X+    on the link command instead of either ',sys$library:vaxcrtl/lib' or
X+    '$ define lnk$library sys$library:vaxcrtl'
X+    Linking against the vaxcrtl sharable image is encouraged and will result
X+    in significantly smaller .EXE files.  The routine C$$TRANSLATE (used in
X+    vmsunix.c) is not available from the sharable image version of vaxcrtl.
X+  */
X+ /* #define no_c$$translate /**/
X  
X  /*
X   * The remainder of the file should not need to be changed.
X***************
X*** 35,40 ****
X--- 84,97 ----
X     Until it is fixed, eliminate const. */
X  #ifdef __GNUC__
X  # define const
X+ #endif
X+ #if defined(VAXC) && !defined(ANCIENT_VAXC)
X+ # ifdef volatile
X+ #  undef volatile
X+ # endif
X+ # ifdef const
X+ #  undef const
X+ # endif
X  #endif
X  
X  #include <time.h>
X*** include/Old/you.h	Sun Jun  3 16:11:42 1990
X--- include/you.h	Mon May 28 09:38:45 1990
X***************
X*** 40,46 ****
X  
X  
X  	long p_flgs;
X! 	int (*p_tofn)();	/* called after timeout */
X  };
X  
X  struct you {
X--- 40,46 ----
X  
X  
X  	long p_flgs;
X! 	int NDECL((*p_tofn));	/* called after timeout */
X  };
X  
X  struct you {
X*** auxil/Old/rumors.tru	Sun Jun  3 09:41:23 1990
X--- auxil/rumors.tru	Fri Apr 13 18:48:13 1990
X***************
X*** 143,159 ****
X--- 143,164 ----
X  There is no harm in praising a large dog.
X  There is nothing like eating a mimic.
X  They say a gelatinous cube can paralyze you...
X+ They say that Jubilex is afraid of a wand of digging.
X  They say that Medusa would like to put you on a pedestal.
X  They say that Vlad lives!!! ... in the mazes.
X+ They say that `Elbereth' is often written about.
X  They say that a bag of holding can't hold everything.
X  They say that a blessed tin of quasit meat is a quick meal.
X  They say that a cat avoids traps.
X+ They say that a cave spider will occasionally eat cave spider eggs.
X  They say that a clever wizard can have stats:  18/** 24 18 24 24 24.
X+ They say that a clove of garlic makes a good talisman if handled right.
X  They say that a cursed scroll of teleportation could land you in trouble.
X  They say that a diamond is another kind of luck stone.
X  They say that a dog can be trained to fetch objects.
X  They say that a gelatinous cube makes a healthy breakfast.
X  They say that a giant gets strong by eating right, try it!
X+ They say that a grid bug won't hit you when you cross it.
X  They say that a lembas wafer is a very light snack.
X  They say that a loadstone has a strange attraction and is not bad luck.
X  They say that a lock pick by any other name is still a lock pick.
X***************
X*** 163,198 ****
X--- 168,226 ----
X  They say that a polymorph trap is magic and magic protection prevents it.
X  They say that a potion of healing can cancel a potion of sickness.
X  They say that a potion of monster detection sometimes works both ways.
X+ They say that a sink looks different from high above the floor.
X  They say that a summoned demon could improve your game.
X+ They say that a tin of wraith meat is a rare dining experience.
X  They say that a unicorn might bring you luck.
X  They say that a wand of cancellation is like a wand of polymorph.
X+ They say that a wand of locking can close more than just doors.
X  They say that a wand of polymorph can change your game.
X  They say that a wizard is even more powerful the second time around.
X  They say that a xorn knows of no obstacles when pursuing you.
X  They say that abusing a credit card could shock you sooner or later.
X  They say that after drinking booze you should never try to read scrolls.
X+ They say that amulets, like most things, can be deadly or life saving.
X  They say that an altar can identify blessings.
X  They say that an ooze will bite your boots and a rockmole will eat them.
X+ They say that an unlucky hacker was once killed by an exploding tin.
X  They say that antique dealers are always interested in precious stones.
X+ They say that booze can be diluted but not cancelled.
X+ They say that by listening carefully, you can hear a secret door!
X+ They say that carrots and carrot juice may improve your vision.
X  They say that cave spiders are not considered expensive health food.
X+ They say that demigods must leave behind their prized earthly possessions.
X+ They say that disturbing a djinni can be a costly mistake.
X+ They say that dropping coins into a fountain will not grant you a wish.
X  They say that dwarves lawfully mind their own business.
X  They say that eating a bat corpse will make you batty, for awhile.
X  They say that eating a cram ration is a smart move.
X+ They say that eating blue jelly is cool if you don't fight the feeling.
X  They say that escaping a dungeon is only the beginning of the end.
X  They say that feeling an unexpected draft of air is sort of a breakthrough.
X  They say that finding a cursed gray stone is always bad luck.
X+ They say that for a good time engrave `Elbereth'.
X  They say that gaining a level is an experience that can raise your sights.
X  They say that garter snake meat rarely tastes good but it's still healthy.
X+ They say that gauntlets of dexterity have a hidden enchanted touch.
X  They say that going to heaven is just another way of escaping the dungeon.
X  They say that golden nagas are law-abiding denizens as long as you are too.
X  They say that gremlins can make you feel cooler than you are now.
X  They say that grid bugs only exist in a strictly Cartesian sense.
X+ They say that hackers often feel jumpy about eating nymphs.
X  They say that having polymorph control won't shock you.
X+ They say that hell hath no fury like Medusa scorned.
X+ They say that if it's hard getting your food down another bite could kill.
X+ They say that if you don't wear glasses why bother with carrots?
X  They say that if you notice a loose board beneath you, don't step on it.
X+ They say that if you start at the bottom the only place to go is up.
X+ They say that if you teleport to heaven you're presumed to be dead already.
X+ They say that in a shop you can be charged for old charges.
X+ They say that in lighter moments you could think of ways to pass a stone.
X  They say that in the dungeon breaking a mirror can be seven years bad luck.
X  They say that in the dungeon you don't usually have any luck at all.
X  They say that in time a blessed luckstone can make your god happy.
X  They say that it is easier to kill the Wizard than to make him stand still.
X+ They say that it only takes 1 zorkmid to meet the Kops.
X  They say that it's a blast when you mix the right potions together.
X  They say that it's not blind luck if you catch a glimpse of Medusa.
X  They say that killing a shopkeeper brings bad luck.
X***************
X*** 202,242 ****
X--- 230,295 ----
X  They say that naturally a wand of wishing would be heavily guarded.
X  They say that no one notices the junk underneath a boulder.
X  They say that nobody expects a unicorn horn to rust.
X+ They say that nobody knows if an explorer can live forever.  Do you?
X  They say that nothing can change the fact that some potions contain a djinni.
X  They say that nothing can change the fact that some potions contain a ghost.
X+ They say that nymphs always fall for rock'n'roll, try it!
X+ They say that once an Olog-Hai is canned it never shows its face again.
X  They say that once upon a time xans would never scratch your boots.
X+ They say that only an experienced wizard can do the tengu shuffle.
X  They say that only chaotics can kill shopkeepers and get away with it.
X+ They say that playing a horn really bad is really good.
X  They say that rubbing a glowing potion does not make it a magic lamp.
X+ They say that scalpels become dull because they're not athames.
X  They say that shopkeepers don't mind you bringing your pets in the shop.
X  They say that shopkeepers don't usually mind if you sneak into a shop.
X  They say that shopkeepers often have a large amount of money in their purses.
X+ They say that shopkeepers often remember things that you might forget.
X  They say that sinks and armor don't mix, take your cloak off now!
X  They say that sinks run hot and cold and many flavors in between.
X+ They say that snake charmers aren't charismatic, just musical.
X  They say that soldiers are always prepared and usually protected.
X  They say that some eggs could hatch in your pack, lucky or not.
X  They say that some fire ants will make you a hot meal.
X  They say that some horns play hot music and others are too cool for words.
X+ They say that some humanoids are nonetheless quite human.
X  They say that some shopkeepers consider gems to be family heirlooms.
X  They say that some shopkeepers recognize gems but they won't tell you.
X  They say that some stones are much much heavier than others.
X  They say that some yetis are full of hot air.
X  They say that someone said that the stooges once played here, nyuck, nyuck.
X+ They say that something very special would be in a well-protected place.
X  They say that speed boots aren't fast enough to let you walk on water.
X+ They say that teleport traps are the devil's work.
X+ They say that tengus don't wear rings, why should you?
X  They say that tengus never steal gold although they would be good at it.
X+ They say that that which was stolen once can be stolen again, ask any nymph.
X+ They say that the Delphic Oracle knows that lizard corpses aren't confusing.
X+ They say that the Hand of Elbereth can hold up your prayers.
X  They say that the Leprechaun King is rich as Croesus.
X  They say that the Wizard of Yendor is schizophrenic and suicidal.
X  They say that the experienced character knows how to convert an altar.
X  They say that the gods are happy when they drop objects at your feet.
X+ They say that the idea of invisible Nazguls has a certain ring to it.
X  They say that the lady of the lake now lives in a fountain somewhere.
X  They say that the local shopkeeper frowns upon the rude tourist.
X  They say that the only door to the vampire's tower is on its lowest level.
X+ They say that the only good djinni is a grateful djinni.
X+ They say that the road through hell is a one-way street.
X  They say that the road to hell begins with Medusa.
X+ They say that the thing about genocide is that it works both ways.
X+ They say that the unicorn horn rule is if it ain't broke then don't fix it.
X+ They say that the view from a fog cloud is really very moving.
X  They say that the walls in shops are made of extra hard material.
X  They say that there are at least 15 ways to lose a pair of levitation boots.
X  They say that throwing glass gems is the same as throwing rocks.
X+ They say that trespassing a boulder is probably beneath you.
X  They say that unicorns are fond of precious gems.
X  They say that water can identify an altar.
X  They say that what goes down the drain might come back up.
X+ They say that wielded, a long sword named Fire Brand makes you feel cooler.
X+ They say that wielded, a long sword named Frost Brand makes you hot stuff.
X+ They say that wiping its face is impossible for a floating eye.
X  They say that with a floating eye you could see in the dark.
X  They say that you are lucky if you can get a unicorn to catch a ruby.
X  They say that you are what you eat.
X***************
X*** 246,251 ****
X--- 299,305 ----
X  They say that you can't take your pick-axe into a shop.
X  They say that you don't always get what you wish for.
X  They say that you might find broken smoky potions in the morgue.
X+ They say that you should always be prepared for a final challenge.
X  They say that you should ask a dwarf to let you into a locked shop.
X  They say that you should pray for divine inspiration.
X  They say that you should religiously give your gold away.
X*** vms/Old/vmsmain.c	Sun Jun  3 10:35:42 1990
X--- vms/vmsmain.c	Thu May 24 21:37:46 1990
X***************
X*** 59,65 ****
X  #endif
X  	if(argc > 1) {
X  #ifdef CHDIR
X! 	    if (!strncmp(argv[1], "-d", 2)) {
X  		argc--;
X  		argv++;
X  		dir = argv[0]+2;
X--- 59,68 ----
X  #endif
X  	if(argc > 1) {
X  #ifdef CHDIR
X! 	    if (!strncmp(argv[1], "-d", 2) && argv[1][2] != 'e') {
X! 		/* avoid matching "-dec" for DECgraphics; since the man page
X! 		 * says -d directory, hope nobody's using -desomething_else
X! 		 */
X  		argc--;
X  		argv++;
X  		dir = argv[0]+2;
X***************
X*** 83,89 ****
X  		chdirx(dir,0);
X  #endif
X  		prscore(argc, argv);
X! 		if(isatty(1)) getret();
X  		settty(NULL);
X  		exit(0);
X  	    }
X--- 86,92 ----
X  		chdirx(dir,0);
X  #endif
X  		prscore(argc, argv);
X! 		if(isatty(1) > 0) getret();
X  		settty(NULL);
X  		exit(0);
X  	    }
X***************
X*** 125,131 ****
X  # endif
X  		case 'D':
X  # ifdef WIZARD
X! 			if(!strcmp(getenv("USER"), WIZARD)) {
X  				wizard = TRUE;
X  				break;
X  			}
X--- 128,134 ----
X  # endif
X  		case 'D':
X  # ifdef WIZARD
X! 			if(!strcmp(getenv("USER"), WIZARD_NAME)) {
X  				wizard = TRUE;
X  				break;
X  			}
X***************
X*** 153,158 ****
X--- 156,167 ----
X  			} else
X  				Printf("Player name expected after -u\n");
X  			break;
X+ 		case 'i':
X+ 			if(!strcmp(argv[0]+1, "ibm")) assign_ibm_graphics();
X+ 			break;
X+ 		case 'd':
X+ 			if(!strcmp(argv[0]+1, "dec")) assign_dec_graphics();
X+ 			break;
X  		default:
X  			/* allow -T for Tourist, etc. */
X  			(void) strncpy(pl_character, argv[0]+1,
X***************
X*** 318,326 ****
X  char *dir;
X  boolean wr;
X  {
X  	static char *defdir = HACKDIR;
X  
X- # ifdef HACKDIR
X  	if(dir == NULL)
X  		dir = defdir;
X  	else if (wr)
X--- 327,337 ----
X  char *dir;
X  boolean wr;
X  {
X+ # ifndef HACKDIR
X+ 	static char *defdir = ".";
X+ # else
X  	static char *defdir = HACKDIR;
X  
X  	if(dir == NULL)
X  		dir = defdir;
X  	else if (wr)
X***************
X*** 376,387 ****
X  byebye()
X  {
X      int (*hup)();
X      extern unsigned int dosh_pid;
X  
X      /* SIGHUP doesn't seem to do anything on VMS, so we fudge it here... */
X      hup = signal(SIGHUP, SIG_IGN);
X      if (hup != SIG_DFL && hup != SIG_IGN)
X  	(*hup)();
X!     if (dosh_pid)
X! 	SYS$DELPRC(&dosh_pid, 0);
X  }
X--- 387,405 ----
X  byebye()
X  {
X      int (*hup)();
X+ #ifdef SHELL
X      extern unsigned int dosh_pid;
X  
X+     if (dosh_pid)
X+ 	SYS$DELPRC(&dosh_pid, 0);
X+ #endif SHELL
X+ 
X      /* SIGHUP doesn't seem to do anything on VMS, so we fudge it here... */
X      hup = signal(SIGHUP, SIG_IGN);
X      if (hup != SIG_DFL && hup != SIG_IGN)
X  	(*hup)();
X! 
X! #ifdef CHDIR
X!     (void) chdir(getenv("PATH"));
X! #endif
X  }
X*** vms/Old/vmsunix.c	Sun Jun  3 10:36:56 1990
X--- vms/vmsunix.c	Thu May 24 18:28:49 1990
X***************
X*** 21,27 ****
X--- 21,41 ----
X  #include <errno.h>
X  #include <signal.h>
X  #undef off_t
X+ #ifndef VAXC
X  #include <sys/stat.h>
X+ #else   VAXC
X+ #include <stat.h>
X+ #endif  VAXC
X+ #include <ctype.h>
X+ #ifdef no_c$$translate
X+ #include <errno.h>
X+ #define C$$TRANSLATE(status) (errno = EVMSERR,  vaxc$errno = (status))
X+ #else   /* must link with vaxcrtl object library (/lib or /incl=c$$translate) */
X+ extern FDECL(C$$TRANSLATE, (unsigned long));
X+ #endif
X+ extern unsigned long SYS$PARSE(), SYS$SEARCH(), SYS$ENTER(), SYS$REMOVE();
X+ extern unsigned long SYS$SETPRV();
X+ extern unsigned long LIB$GETJPI(), LIB$SPAWN(), LIB$ATTACH();
X  
X  int FDECL(link, (const char *, const char *));
X  
X***************
X*** 159,165 ****
X  	 * works
X  	 * also incidentally prevents development of any hack-o-matic programs
X  	 */
X! 	if (!isatty(0))
X  		error("You must play from a terminal.");
X  #endif
X  
X--- 173,179 ----
X  	 * works
X  	 * also incidentally prevents development of any hack-o-matic programs
X  	 */
X! 	if (isatty(0) <= 0)
X  		error("You must play from a terminal.");
X  #endif
X  
X***************
X*** 234,245 ****
X  {
X  	register char *lp;
X  
X! 	for (lp = s; *lp; lp++)
X! 		if (!((*lp >= 'A' && *lp <= 'Z')
X! 		      || (*lp >= 'a' && *lp <= 'z')
X! 		      || (*lp >= '0' && *lp <= '9')
X! 		      || *lp == '$' || *lp == '_'
X! 		      || (lp > s && *lp == '-')))
X  			*lp = '_';
X  }
X  
X--- 248,255 ----
X  {
X  	register char *lp;
X  
X! 	for (lp = s; *lp; lp++)         /* note: '-' becomes '_' */
X! 	    if (!(isalpha(*lp) || isdigit(*lp) || *lp == '$'))
X  			*lp = '_';
X  }
X  
X***************
X*** 246,252 ****
X  int link(file, new)
X  const char *file, *new;
X  {
X!     int status;
X      struct FAB fab;
X      struct NAM nam;
X      unsigned short fid[3];
X--- 256,262 ----
X  int link(file, new)
X  const char *file, *new;
X  {
X!     unsigned long status;
X      struct FAB fab;
X      struct NAM nam;
X      unsigned short fid[3];
X***************
X*** 341,353 ****
X      return (getgid() << 16) | getuid();
X  }
X  
X! #ifdef CHDIR
X  unsigned int oprv[2];
X  
X  void
X  privoff()
X  {
X!     unsigned int prv[2] = { -1, -1 }, code = JPI$_PROCPRIV;
X  
X      (void) SYS$SETPRV(0, prv, 0, oprv);
X      (void) LIB$GETJPI(&code, 0, 0, prv);
X--- 351,363 ----
X      return (getgid() << 16) | getuid();
X  }
X  
X! #if defined(CHDIR) || defined(SHELL)
X  unsigned int oprv[2];
X  
X  void
X  privoff()
X  {
X!     unsigned long prv[2] = { -1, -1 }, code = JPI$_PROCPRIV;
X  
X      (void) SYS$SETPRV(0, prv, 0, oprv);
X      (void) LIB$GETJPI(&code, 0, 0, prv);
X***************
X*** 359,368 ****
X  {
X      (void) SYS$SETPRV(1, oprv, 0, 0);
X  }
X! #endif
X  
X  #ifdef SHELL
X! unsigned int dosh_pid = 0;
X  
X  int
X  dosh()
X--- 369,378 ----
X  {
X      (void) SYS$SETPRV(1, oprv, 0, 0);
X  }
X! #endif  /*CHDIR || SHELL*/
X  
X  #ifdef SHELL
X! unsigned long dosh_pid = 0;
X  
X  int
X  dosh()
X***************
X*** 370,387 ****
X  	int status;
X  
X  	settty((char *) NULL);	/* also calls end_screen() */
X! 	(void) signal(SIGINT,SIG_IGN);
X  	(void) signal(SIGQUIT,SIG_IGN);
X  	if (!dosh_pid || !((status = LIB$ATTACH(&dosh_pid)) & 1))
X  	{
X  #ifdef CHDIR
X  		(void) chdir(getenv("PATH"));
X- 		privoff();
X  #endif
X  		dosh_pid = 0;
X  		status = LIB$SPAWN(0, 0, 0, 0, 0, &dosh_pid);
X- #ifdef CHDIR
X  		privon();
X  		chdirx((char *) 0, 0);
X  #endif
X  	}
X--- 380,397 ----
X  	int status;
X  
X  	settty((char *) NULL);	/* also calls end_screen() */
X! 	(void) signal(SIGINT,SIG_DFL);
X  	(void) signal(SIGQUIT,SIG_IGN);
X  	if (!dosh_pid || !((status = LIB$ATTACH(&dosh_pid)) & 1))
X  	{
X  #ifdef CHDIR
X  		(void) chdir(getenv("PATH"));
X  #endif
X+ 		privoff();
X  		dosh_pid = 0;
X  		status = LIB$SPAWN(0, 0, 0, 0, 0, &dosh_pid);
X  		privon();
X+ #ifdef CHDIR
X  		chdirx((char *) 0, 0);
X  #endif
X  	}
X
END_OF_FILE
if test 53441 -ne `wc -c <'patch8.12'`; then
    echo shar: \"'patch8.12'\" unpacked with wrong size!
fi
# end of 'patch8.12'
fi
if test -f 'vms/lev_lex.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'vms/lev_lex.h'\"
else
echo shar: Extracting \"'vms/lev_lex.h'\" \(436 characters\)
sed "s/^X//" >'vms/lev_lex.h' <<'END_OF_FILE'
X/*       SCCS Id: @(#)lev_lex.h   3.0      90/05/24
X/* "vms/lev_lex.h" copied into "src/stdio.h" for use by lev_lex.c only!
X * This is an awful kludge to allow src/lev_lex.c to be compiled as is.
X * It works because the actual setup of yyin & yyout is performed in
X * src/lev_main.c, where stdin & stdout are still correctly defined.
X */
X#ifdef VAXC
X# module lev_lex "3.0.8"
X#endif
X
X#include <stdio.h>
X#define stdin  0
X#define stdout 0
END_OF_FILE
if test 436 -ne `wc -c <'vms/lev_lex.h'`; then
    echo shar: \"'vms/lev_lex.h'\" unpacked with wrong size!
fi
# end of 'vms/lev_lex.h'
fi
echo shar: End of archive 4 \(of 24\).
cp /dev/null ark4isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 24 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0