home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume16 / nethck31 / patch2i < prev    next >
Encoding:
Internet Message Format  |  1993-06-15  |  61.3 KB

  1. Path: uunet!news.tek.com!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v17i084:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch2i/33
  5. Date: 11 Jun 1993 00:08:57 GMT
  6. Organization: Tektronix, Inc, Redmond, OR, USA
  7. Lines: 2285
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <1v8iep$iun@ying.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1772
  12.  
  13. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  14. Posting-number: Volume 17, Issue 84
  15. Archive-name: nethack31/Patch2i
  16. Patch-To: nethack31: Volume 16, Issue 1-116
  17. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  18.  
  19.  
  20.  
  21. #! /bin/sh
  22. # This is a shell archive.  Remove anything before this line, then unpack
  23. # it by saving it into a file and typing "sh file".  To overwrite existing
  24. # files, type "sh file -c".  You can also feed this as standard input via
  25. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  26. # will see the following message at the end:
  27. #        "End of archive 9 (of 33)."
  28. # Contents:  UPDATE2 include/ntconf.h patches02q
  29. # Wrapped by billr@saab on Thu Jun 10 16:55:02 1993
  30. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  31. if test -f 'UPDATE2' -a "${1}" != "-c" ; then 
  32.   echo shar: Renaming existing file \"'UPDATE2'\" to \"'UPDATE2.orig'\"
  33.   mv -f 'UPDATE2' 'UPDATE2.orig'
  34. fi
  35. echo shar: Extracting \"'UPDATE2'\" \(931 characters\)
  36. sed "s/^X//" >'UPDATE2' <<'END_OF_FILE'
  37. XIn port-specific news, the Amiga and Mac ports have again changed the
  38. Xmost, both in user interface for the previously existing windowing
  39. Xsystems and in adding support for "tty" windowing.  The MS-DOS versions
  40. Xmay now use direct screen I/O instead of going through termcap routines,
  41. Xand be compiled for NEC PC-9801 machines thanks to Yamamoto Keizo.
  42. XThe SYSV 386 music driver was ported to 386BSD by Andrew Chernov and
  43. XSCO by Andreas Arens.
  44. X
  45. XIn general news, the pickup and disclosure options were enhanced;
  46. Xinformation on the new usage is available from the Guidebook and
  47. Xintra-game options help.
  48. X
  49. XA number of bugs were fixed, of which the most commonly encountered
  50. Xfatal ones were associated with cursed bags of holding, renaming
  51. Xshopkeepers, objects falling through trapdoors on deep levels, and
  52. Xkicking embedded objects loose.
  53. X
  54. XAs usual, bones and save files from previous versions should be discarded
  55. Xwhen upgrading to 3.1.2.
  56. X
  57. END_OF_FILE
  58. if test 931 -ne `wc -c <'UPDATE2'`; then
  59.     echo shar: \"'UPDATE2'\" unpacked with wrong size!
  60. fi
  61. # end of 'UPDATE2'
  62. if test -f 'include/ntconf.h' -a "${1}" != "-c" ; then 
  63.   echo shar: Renaming existing file \"'include/ntconf.h'\" to \"'include/ntconf.h.orig'\"
  64.   mv -f 'include/ntconf.h' 'include/ntconf.h.orig'
  65. fi
  66. echo shar: Extracting \"'include/ntconf.h'\" \(1220 characters\)
  67. sed "s/^X//" >'include/ntconf.h' <<'END_OF_FILE'
  68. X/*    SCCS Id: @(#)ntconf.h    3.1    93/04/08    */
  69. X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  70. X/* NetHack may be freely redistributed.  See license for details. */
  71. X
  72. X#ifndef NTCONF_H
  73. X#define NTCONF_H
  74. X
  75. X#define MICRO        /* always define this! */
  76. X
  77. X#define SHELL
  78. X
  79. X#define RANDOM        /* have Berkeley random(3) */
  80. X
  81. X#define TEXTCOLOR    /* Color text */
  82. X
  83. X#define PATHLEN        64    /* maximum pathlength */
  84. X#define FILENAME    80    /* maximum filename length (conservative) */
  85. X#ifndef MICRO_H
  86. X#include "micro.h"      /* contains necessary externs for [os_name].c */
  87. X#endif
  88. X
  89. X
  90. X/*
  91. X *  The remaining code shouldn't need modification.
  92. X */
  93. X
  94. X#define NO_TERMS       /* April 8/93 mja */
  95. X#define ASCIIGRAPH
  96. X#ifndef SYSTEM_H
  97. X#include "system.h"
  98. X#endif
  99. X#define index    strchr
  100. X#define rindex    strrchr
  101. X
  102. X#include <time.h>
  103. X
  104. X#ifdef RANDOM
  105. X/* Use the high quality random number routines. */
  106. X#define Rand()    random()
  107. X#else
  108. X#define Rand()    rand()
  109. X#endif
  110. X
  111. X#define FCMASK    0660    /* file creation mask */
  112. X
  113. X#include <fcntl.h>
  114. X#include <io.h>
  115. X#include <direct.h>
  116. X#include <conio.h>
  117. X#undef kbhit            /* Use our special NT kbhit */
  118. X
  119. X#define exit    msexit        /* do chdir first */
  120. X
  121. X#ifndef REDO
  122. X#undef    Getchar
  123. X#define Getchar nhgetch
  124. X#endif
  125. X
  126. X
  127. X#endif /* NTCONF_H */
  128. END_OF_FILE
  129. if test 1220 -ne `wc -c <'include/ntconf.h'`; then
  130.     echo shar: \"'include/ntconf.h'\" unpacked with wrong size!
  131. fi
  132. # end of 'include/ntconf.h'
  133. if test -f 'patches02q' -a "${1}" != "-c" ; then 
  134.   echo shar: Renaming existing file \"'patches02q'\" to \"'patches02q.orig'\"
  135.   mv -f 'patches02q' 'patches02q.orig'
  136. fi
  137. echo shar: Extracting \"'patches02q'\" \(55421 characters\)
  138. sed "s/^X//" >'patches02q' <<'END_OF_FILE'
  139. X*** /tmp/da12288    Tue Jun  1 17:23:16 1993
  140. X--- sys/mac/MacHelp    Wed Mar 17 14:02:42 1993
  141. X***************
  142. X*** 20,25 ****
  143. X--- 20,26 ----
  144. X          will be created if it doesn't exist.
  145. X      various special level files (with a ".lev" suffix).
  146. X      various help and other utility NetHack documents.
  147. X+     Recover - the application to restore save files from crashed games.
  148. X  
  149. X      During play another file type appears:
  150. X      player level files (labelled "iName.n", i is a constant number,
  151. X***************
  152. X*** 34,41 ****
  153. X      The following files or file types may be thrown away:
  154. X      logfile - if it becomes too large.  A new one will be generated.
  155. X      player level files _not_ belonging to a game in progress.
  156. X!         Alternatively, these files may be processed by a utility
  157. X!         application, Recover (not included in this distribution).
  158. X      Old bones files and saved games.
  159. X  
  160. X  === Resuming a saved game
  161. X--- 35,42 ----
  162. X      The following files or file types may be thrown away:
  163. X      logfile - if it becomes too large.  A new one will be generated.
  164. X      player level files _not_ belonging to a game in progress.
  165. X!         Alternatively, these files may be processed by Recover,
  166. X!         which may be able to restore a save file from the level files.
  167. X      Old bones files and saved games.
  168. X  
  169. X  === Resuming a saved game
  170. X***************
  171. X*** 54,60 ****
  172. X          without scrolling to the end.
  173. X  
  174. X      The Extended command "Window Cleanup" may be used to restore the
  175. X!         the startup sizes and locations of the essential windows.  The
  176. X          window positions are saved in a file labelled "NetHack Windows"
  177. X          in the appropriate preferences folder.
  178. X  
  179. X--- 55,61 ----
  180. X          without scrolling to the end.
  181. X  
  182. X      The Extended command "Window Cleanup" may be used to restore the
  183. X!         the startup sizes and locations of the various windows.  The
  184. X          window positions are saved in a file labelled "NetHack Windows"
  185. X          in the appropriate preferences folder.
  186. X  
  187. X***************
  188. X*** 63,68 ****
  189. X--- 64,70 ----
  190. X      MACgraphics  - use enhanced dungeon map symbols [TRUE]
  191. X      large_font   - use 12 point font instead of 9 point font [FALSE]
  192. X      popup_dialog - use real dialogs for question prompts [FALSE]
  193. X+     page_wait    - display  --MORE--  after messages [TRUE]
  194. X  
  195. X      large_font is currently a pre-game option and has no effect
  196. X          after the Dungeon Map, Message and Status windows are created.
  197. X*** /tmp/da12337    Tue Jun  1 17:23:34 1993
  198. X--- sys/mac/News    Thu Mar 18 09:57:43 1993
  199. X***************
  200. X*** 1,8 ****
  201. X! Welcome to NetHack 3.1 for the Macintosh    (1/93)
  202. X  
  203. X  This game is brought to you by Jon Watte, Hao-Yang Wang and the rest
  204. X! of the Macintosh Team (Mike Engber, David Hairston, Jonathan Handler,
  205. X! Tim Lennan, Rob Menke, Chris Russo and Andy Swanson).
  206. X  
  207. X  Bug reports, suggestions, comments, etc., should be e-mailed to the
  208. X  Internet address: nethack-bugs@linc.cis.upenn.edu
  209. X--- 1,8 ----
  210. X! Welcome to NetHack 3.1 for the Macintosh
  211. X  
  212. X  This game is brought to you by Jon Watte, Hao-Yang Wang and the rest
  213. X! of the Macintosh Team (David Hairston, Jonathan Handler, Tim Lennan,
  214. X! Rob Menke, Chris Russo and Andy Swanson).
  215. X  
  216. X  Bug reports, suggestions, comments, etc., should be e-mailed to the
  217. X  Internet address: nethack-bugs@linc.cis.upenn.edu
  218. X*** /tmp/da12361    Tue Jun  1 17:23:39 1993
  219. X--- sys/mac/maccurs.c    Mon May 17 16:17:13 1993
  220. X***************
  221. X*** 11,16 ****
  222. X--- 11,18 ----
  223. X  #include <Memory.h>
  224. X  #include <Files.h>
  225. X  
  226. X+ extern void dprintf ( char * , ... ) ;
  227. X+ 
  228. X  #define DIV_FACTOR 3
  229. X  
  230. X  static Boolean winFileInit = 0 ;
  231. X***************
  232. X*** 162,176 ****
  233. X  
  234. X  
  235. X  Boolean
  236. X! RetrievePosition ( short kind , short * top , short * left )
  237. X! {
  238. X!     Point p ;
  239. X  
  240. X      InitWinFile ( ) ;
  241. X      if ( kind < 0 || kind > kLastWindowKind ) {
  242. X          return 0 ;
  243. X      }
  244. X      if ( ! usePos [ kind ] . validPos ) {
  245. X          return 0 ;
  246. X      }
  247. X      * top = usePos [ kind ] . top ;
  248. X--- 164,179 ----
  249. X  
  250. X  
  251. X  Boolean
  252. X! RetrievePosition ( short kind , short * top , short * left ) {
  253. X! Point p ;
  254. X  
  255. X      InitWinFile ( ) ;
  256. X      if ( kind < 0 || kind > kLastWindowKind ) {
  257. X+         dprintf ( "Retrieve Bad kind %d" , kind ) ;
  258. X          return 0 ;
  259. X      }
  260. X      if ( ! usePos [ kind ] . validPos ) {
  261. X+         dprintf ( "Retrieve Not stored kind %d" , kind ) ;
  262. X          return 0 ;
  263. X      }
  264. X      * top = usePos [ kind ] . top ;
  265. X***************
  266. X*** 177,182 ****
  267. X--- 180,186 ----
  268. X      * left = usePos [ kind ] . left ;
  269. X      p . h = * left ;
  270. X      p . v = * top ;
  271. X+     dprintf ( "Retrieve Kind %d Point (%d,%d)" , kind , * left , * top ) ;
  272. X      return PtInRgn ( p , GetGrayRgn ( ) ) ;
  273. X  }
  274. X  
  275. X***************
  276. X*** 206,216 ****
  277. X--- 210,222 ----
  278. X  {
  279. X      InitWinFile ( ) ;
  280. X      if ( kind < 0 || kind > kLastWindowKind ) {
  281. X+         dprintf ( "Save bad kind %d" , kind ) ;
  282. X          return ;
  283. X      }
  284. X      savePos [ kind ] . validPos = 1 ;
  285. X      savePos [ kind ] . top = top ;
  286. X      savePos [ kind ] . left = left ;
  287. X+     dprintf ( "Save kind %d point (%d,%d)" , kind , left , top ) ;
  288. X      FlushWinFile ( ) ;
  289. X  }
  290. X  
  291. X***************
  292. X*** 232,239 ****
  293. X  static short
  294. X  GetWinKind ( WindowPtr win )
  295. X  {
  296. X!     short kind ;
  297. X!     NhWindow * nhw = GetWRefCon ( win ) ;
  298. X  
  299. X      if ( ! nhw || ( ( ( long ) nhw ) & 1 ) || nhw -> theWindow != win ) {
  300. X          return -1 ;
  301. X--- 238,248 ----
  302. X  static short
  303. X  GetWinKind ( WindowPtr win )
  304. X  {
  305. X! short kind ;
  306. X! NhWindow * nhw = GetNhWin ( win ) ;
  307. X! char * typeStr [ ] = {
  308. X!     "map" , "status" , "message" , "text" , "menu" ,
  309. X! } ;
  310. X  
  311. X      if ( ! nhw || ( ( ( long ) nhw ) & 1 ) || nhw -> theWindow != win ) {
  312. X          return -1 ;
  313. X***************
  314. X*** 242,254 ****
  315. X      if ( kind < 0 || kind > NHW_TEXT ) {
  316. X          return -1 ;
  317. X      }
  318. X      switch ( kind ) {
  319. X      case NHW_MAP :
  320. X          kind = kMapWindow ;
  321. X          break ;
  322. X-     case NHW_STATUS :
  323. X-         kind = kStatusWindow ;
  324. X-         break ;
  325. X      case NHW_MESSAGE :
  326. X          kind = kMessageWindow ;
  327. X          break ;
  328. X--- 251,263 ----
  329. X      if ( kind < 0 || kind > NHW_TEXT ) {
  330. X          return -1 ;
  331. X      }
  332. X+     dprintf ( "Got window kind %d (%lx)->%lx" , kind , win , nhw ) ;
  333. X      switch ( kind ) {
  334. X      case NHW_MAP :
  335. X+     case NHW_STATUS :
  336. X+     case NHW_BASE :
  337. X          kind = kMapWindow ;
  338. X          break ;
  339. X      case NHW_MESSAGE :
  340. X          kind = kMessageWindow ;
  341. X          break ;
  342. X***************
  343. X*** 259,265 ****
  344. X          kind = kTextWindow ;
  345. X          break ;
  346. X      }
  347. X! 
  348. X      return kind ;
  349. X  }
  350. X  
  351. X--- 268,274 ----
  352. X          kind = kTextWindow ;
  353. X          break ;
  354. X      }
  355. X!     dprintf ( "Returning kind %s" , typeStr [ kind ] ) ;
  356. X      return kind ;
  357. X  }
  358. X  
  359. X***************
  360. X*** 291,296 ****
  361. X--- 300,306 ----
  362. X      GetPort ( & gp ) ;
  363. X      SetPort ( win ) ;
  364. X      LocalToGlobal ( & p ) ;
  365. X+     AddPt ( * ( Point * ) & ( win -> portRect ) , & p ) ; /* Adjust for origin */
  366. X      SetPort ( gp ) ;
  367. X      SavePosition ( kind , p . v , p . h ) ;
  368. X  }
  369. X*** /tmp/da12369    Tue Jun  1 17:23:41 1993
  370. X--- sys/mac/macerrs.c    Wed Mar  3 14:22:13 1993
  371. X***************
  372. X*** 74,80 ****
  373. X      short         itemHit;
  374. X      Str255          errdesc;
  375. X      StringHandle strh;
  376. X-     Ptr             junk;
  377. X      
  378. X      errdesc[0] = '\0';
  379. X      if (errcode > 0) GetIndString(errdesc,stdIOErrID,errcode);  /* STDIO file rres, etc */
  380. X--- 74,79 ----
  381. X*** /tmp/da12377    Tue Jun  1 17:23:43 1993
  382. X--- sys/mac/macfile.c    Fri May  7 15:50:31 1993
  383. X***************
  384. X*** 36,41 ****
  385. X--- 36,43 ----
  386. X  int FDECL(macwrite,(int, void *, unsigned));
  387. X  long FDECL(macseek,(int, long, short));
  388. X  
  389. X+ char * FDECL(macgets,(int, char *, unsigned));
  390. X+ 
  391. X  static short FDECL(IsHandleFile,(int));
  392. X  static int FDECL(OpenHandleFile,(const unsigned char *, long));
  393. X  static int FDECL(CloseHandleFile,(int));
  394. X***************
  395. X*** 125,131 ****
  396. X      if ( ! itworked(ResError()) ) return (-1);
  397. X      
  398. X      HLock(h);
  399. X!     BlockMove ( *h , ptr , len );
  400. X      HUnlock(h);
  401. X      theHandleFiles[fd].mark += len ;
  402. X  
  403. X--- 127,133 ----
  404. X      if ( ! itworked(ResError()) ) return (-1);
  405. X      
  406. X      HLock(h);
  407. X!     BlockMove ( *h + theHandleFiles[fd].mark , ptr , len );
  408. X      HUnlock(h);
  409. X      theHandleFiles[fd].mark += len ;
  410. X  
  411. X***************
  412. X*** 322,327 ****
  413. X--- 324,344 ----
  414. X              return -1 ;
  415. X          }
  416. X      }
  417. X+ }
  418. X+ 
  419. X+ 
  420. X+ char *
  421. X+ macgets ( int fd , char * ptr , unsigned len )
  422. X+ {
  423. X+     int idx = 0 ;
  424. X+     while ( -- len > 0 ) {
  425. X+         if ( macread ( fd , ptr + idx , 1 ) <= 0 )
  426. X+             return NULL ;
  427. X+         if ( ptr [ idx ++ ] == '\n' )
  428. X+             break ;
  429. X+     }
  430. X+     ptr [ idx ] = '\0' ;
  431. X+     return ptr ;
  432. X  }
  433. X  
  434. X  
  435. X*** /tmp/da12385    Tue Jun  1 17:23:45 1993
  436. X--- sys/mac/macmain.c    Mon May 17 16:17:17 1993
  437. X***************
  438. X*** 27,32 ****
  439. X--- 27,34 ----
  440. X  #include <fcntl.h>
  441. X  #endif
  442. X  
  443. X+ extern void    DialogAskName(asknameRec *);
  444. X+ 
  445. X  int NDECL(main);
  446. X  void NDECL(ListGUnloads);
  447. X  
  448. X***************
  449. X*** 286,352 ****
  450. X  void
  451. X  mac_askname(void) /* Code taken from getlin */
  452. X  {
  453. X!     ControlHandle    ctrl ;
  454. X!     DialogPtr        promptDialog ;
  455. X!     short            itemHit , type ;
  456. X!     Rect            box ;
  457. X!     Str255            pasStr ;
  458. X  
  459. X!     /*
  460. X!     ** Set the query line as parameter text.
  461. X!     */
  462. X  
  463. X!     ParamText ( "\PWho are you?" , "\p" , "\p" , "\p" ) ;
  464. X  
  465. X!     promptDialog = GetNewDialog ( 130 , ( Ptr ) NULL , ( WindowPtr ) -1 ) ;
  466. X!     ShowWindow ( promptDialog ) ;
  467. X  
  468. X!     InitCursor ( ) ;
  469. X!     SetFrameItem ( promptDialog , 6 , 1 ) ;
  470. X!     do {
  471. X  
  472. X!         ModalDialog ( ( ModalFilterProcPtr ) DragFilter , & itemHit ) ;
  473. X  
  474. X!     } while ( ( itemHit != 1 ) && ( itemHit != 2 ) ) ;
  475. X  
  476. X!     if ( itemHit == 1 ) {
  477. X! 
  478. X!         /*
  479. X!         ** Get the text from the text edit item.
  480. X!         */
  481. X! 
  482. X!         GetDItem ( promptDialog , 4 , & type , ( Handle * ) & ctrl , & box ) ;
  483. X!         GetIText ( ( Handle ) ctrl , pasStr ) ;
  484. X! 
  485. X!         /*
  486. X!         ** Convert it to a 'C' string and copy it into the return value.
  487. X!         */
  488. X! 
  489. X!         PtoCstr ( pasStr ) ;
  490. X!         strcpy ( plname , ( char * ) pasStr ) ;
  491. X! 
  492. X!     /*
  493. X!      * Special check for debugging here
  494. X!      *
  495. X!      */
  496. X! #ifdef WIZARD
  497. X!         if ( ! strcmp ( plname , WIZARD ) ) {
  498. X! 
  499. X!             flags . debug = 1 ;
  500. X!         }
  501. X  #endif
  502. X  
  503. X      } else {
  504. X! 
  505. X!         /*
  506. X!         ** Okay, we didn't want to run
  507. X!         */
  508. X! 
  509. X!     /*    * ( short * ) DSErrCode = dsBadLaunch ; */
  510. X!         ExitToShell ( ) ;
  511. X      }
  512. X  
  513. X!     DisposDialog ( promptDialog ) ;
  514. X  }
  515. X  
  516. X  
  517. X--- 288,347 ----
  518. X  void
  519. X  mac_askname(void) /* Code taken from getlin */
  520. X  {
  521. X!     asknameRec    anr;
  522. X!     /* eventually use roles[] a/o pl_classes[] */
  523. X!     static char        asknRoles [ ] = "ABCEHKPRSTVW" ;
  524. X  
  525. X!     /* initialize the askname record */
  526. X!     qd.randSeed = TickCount() ;
  527. X!     anr.anMenu[anRole] = (Random ( ) & 0x7fff ) % askn_role_end;
  528. X  
  529. X! #ifndef TOURIST
  530. X!     if (anr.anMenu[anRole] == asknTourist) {
  531. X!         anr.anMenu[anRole] = asknValkyrie;
  532. X!     }
  533. X! #endif
  534. X  
  535. X!     if (anr.anMenu[anRole] == asknValkyrie) {
  536. X!         anr.anMenu[anSex] = asknFemale;
  537. X!     } else {
  538. X!         anr.anMenu[anSex] = ( (Random() & 2) ? asknMale : asknFemale);
  539. X!     }
  540. X  
  541. X!     anr.anMenu[anMode] = asknRegular;
  542. X  
  543. X!     InitCursor();
  544. X!     DialogAskName(&anr);
  545. X  
  546. X!     if (anr.anMenu[anMode] == asknQuit) {
  547. X!         ExitToShell();
  548. X!     }
  549. X  
  550. X! #ifdef EXPLORE_MODE
  551. X!     if (anr.anMenu[anMode] == asknExplore ) {
  552. X!         discover = 1 ;
  553. X!     } else {
  554. X!         discover = 0 ;
  555. X!     }
  556. X  #endif
  557. X  
  558. X+ #ifdef WIZARD
  559. X+     if ( anr.anMenu [ anMode ] == asknDebug ) {
  560. X+         wizard = 1 ;
  561. X      } else {
  562. X!         wizard = 0 ;
  563. X      }
  564. X+     if (wizard) {
  565. X+         strcpy(plname, WIZARD);
  566. X+     } else
  567. X+ #endif
  568. X+     {
  569. X+         BlockMove(&(anr.anWho[1]), plname, anr.anWho[0]);
  570. X+         plname [ anr . anWho [ 0 ] ] = 0 ;
  571. X+     }
  572. X  
  573. X!     flags.female = anr.anMenu[anSex];
  574. X!     pl_character[0] = asknRoles[anr.anMenu[anRole]];
  575. X  }
  576. X  
  577. X  
  578. X*** /tmp/da12425    Tue Jun  1 17:23:57 1993
  579. X--- sys/mac/macunix.c    Wed Mar  3 14:22:17 1993
  580. X***************
  581. X*** 15,20 ****
  582. X--- 15,23 ----
  583. X  int
  584. X  uptodate(int fd)
  585. X  {
  586. X+ #if defined(applec)
  587. X+ # pragma unused(fd)
  588. X+ #endif
  589. X      return(1);
  590. X  }
  591. X  
  592. X*** /tmp/da12441    Tue Jun  1 17:24:07 1993
  593. X--- sys/mac/mgetline.c    Wed May 19 10:08:51 1993
  594. X***************
  595. X*** 352,360 ****
  596. X--- 352,362 ----
  597. X  void
  598. X  mac_get_ext_cmd(char *bufp)
  599. X  {
  600. X+ #if 0    /* already in error and then broken by macmenu.c */
  601. X      if (flags.popup_dialog)
  602. X          popup_get_ext_cmd(bufp);
  603. X      else
  604. X+ #endif
  605. X          topl_getlin("# ", bufp, &topl_ext_key);
  606. X  }
  607. X  
  608. X*** /tmp/da11614    Tue Jun  1 16:57:11 1993
  609. X--- util/dgn_comp.l    Fri Apr 23 14:21:35 1993
  610. X***************
  611. X*** 34,40 ****
  612. X  #  define VOIDYYPUT
  613. X  # endif
  614. X  # if !defined(VOIDYYPUT)
  615. X! #  if defined(POSIX_TYPES) && !defined(BOS) && !defined(HISX)
  616. X  #   define VOIDYYPUT
  617. X  #  endif
  618. X  # endif
  619. X--- 34,40 ----
  620. X  #  define VOIDYYPUT
  621. X  # endif
  622. X  # if !defined(VOIDYYPUT)
  623. X! #  if defined(POSIX_TYPES) && !defined(BOS) && !defined(HISX) && !defined(_M_UNIX)
  624. X  #   define VOIDYYPUT
  625. X  #  endif
  626. X  # endif
  627. X*** /tmp/da11622    Tue Jun  1 16:57:13 1993
  628. X--- util/dgn_comp.y    Mon May 17 13:55:22 1993
  629. X***************
  630. X*** 1,5 ****
  631. X  %{
  632. X! /*    SCCS Id: @(#)dgn_comp.c    3.1    93/01/17    */
  633. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  634. X  /*    Copyright (c) 1990 by M. Stephenson                  */
  635. X  /* NetHack may be freely redistributed.  See license for details. */
  636. X--- 1,5 ----
  637. X  %{
  638. X! /*    SCCS Id: @(#)dgn_comp.c    3.1    93/05/15    */
  639. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  640. X  /*    Copyright (c) 1990 by M. Stephenson                  */
  641. X  /* NetHack may be freely redistributed.  See license for details. */
  642. X***************
  643. X*** 25,32 ****
  644. X  #include "config.h"
  645. X  #include "dgn_file.h"
  646. X  
  647. X! void FDECL(yyerror, (char *));
  648. X! void FDECL(yywarning, (char *));
  649. X  int NDECL(yylex);
  650. X  int NDECL(yyparse);
  651. X  int FDECL(getchain, (char *));
  652. X--- 25,32 ----
  653. X  #include "config.h"
  654. X  #include "dgn_file.h"
  655. X  
  656. X! void FDECL(yyerror, (const char *));
  657. X! void FDECL(yywarning, (const char *));
  658. X  int NDECL(yylex);
  659. X  int NDECL(yyparse);
  660. X  int FDECL(getchain, (char *));
  661. X***************
  662. X*** 62,68 ****
  663. X  static int in_dungeon = 0, n_dgns = -1, n_levs = -1, n_brs = -1;
  664. X  
  665. X  extern int fatal_error;
  666. X! extern char* fname;
  667. X  
  668. X  %}
  669. X  
  670. X--- 62,68 ----
  671. X  static int in_dungeon = 0, n_dgns = -1, n_levs = -1, n_brs = -1;
  672. X  
  673. X  extern int fatal_error;
  674. X! extern const char *fname;
  675. X  
  676. X  %}
  677. X  
  678. X*** /tmp/da11630    Tue Jun  1 16:57:15 1993
  679. X--- util/dgn_main.c    Mon May 17 13:55:10 1993
  680. X***************
  681. X*** 1,4 ****
  682. X! /*    SCCS Id: @(#)dgn_main.c 3.1    92/03/10    */
  683. X  /*    Copyright (c) 1989 by Jean-Christophe Collet    */
  684. X  /*    Copyright (c) 1990 by M. Stephenson        */
  685. X  /* NetHack may be freely redistributed.  See license for details. */
  686. X--- 1,4 ----
  687. X! /*    SCCS Id: @(#)dgn_main.c 3.1    93/05/15    */
  688. X  /*    Copyright (c) 1989 by Jean-Christophe Collet    */
  689. X  /*    Copyright (c) 1990 by M. Stephenson        */
  690. X  /* NetHack may be freely redistributed.  See license for details. */
  691. X***************
  692. X*** 37,49 ****
  693. X  #define MAX_ERRORS    25
  694. X  
  695. X  extern int line_number;
  696. X! char *fname = "(stdin)";
  697. X  int fatal_error = 0;
  698. X  
  699. X  int  FDECL (main, (int, char **));
  700. X  int  NDECL (yyparse);
  701. X! void FDECL (yyerror, (char *));
  702. X! void FDECL (yywarning, (char *));
  703. X  int  NDECL (yywrap);
  704. X  void FDECL (init_yyin, (FILE *));
  705. X  void FDECL (init_yyout, (FILE *));
  706. X--- 37,49 ----
  707. X  #define MAX_ERRORS    25
  708. X  
  709. X  extern int line_number;
  710. X! const char *fname = "(stdin)";
  711. X  int fatal_error = 0;
  712. X  
  713. X  int  FDECL (main, (int, char **));
  714. X  int  NDECL (yyparse);
  715. X! void FDECL (yyerror, (const char *));
  716. X! void FDECL (yywarning, (const char *));
  717. X  int  NDECL (yywrap);
  718. X  void FDECL (init_yyin, (FILE *));
  719. X  void FDECL (init_yyout, (FILE *));
  720. X***************
  721. X*** 121,127 ****
  722. X   */
  723. X  
  724. X  void yyerror(s)
  725. X! char *s;
  726. X  {
  727. X      fprintf(stderr,"%s : line %d : %s\n",fname,line_number, s);
  728. X      if (++fatal_error > MAX_ERRORS) {
  729. X--- 121,127 ----
  730. X   */
  731. X  
  732. X  void yyerror(s)
  733. X! const char *s;
  734. X  {
  735. X      fprintf(stderr,"%s : line %d : %s\n",fname,line_number, s);
  736. X      if (++fatal_error > MAX_ERRORS) {
  737. X***************
  738. X*** 135,141 ****
  739. X   */
  740. X  
  741. X  void yywarning(s)
  742. X! char *s;
  743. X  {
  744. X      fprintf(stderr,"%s : line %d : WARNING : %s\n",fname,line_number,s);
  745. X  }
  746. X--- 135,141 ----
  747. X   */
  748. X  
  749. X  void yywarning(s)
  750. X! const char *s;
  751. X  {
  752. X      fprintf(stderr,"%s : line %d : WARNING : %s\n",fname,line_number,s);
  753. X  }
  754. X*** /tmp/da11638    Tue Jun  1 16:57:17 1993
  755. X--- util/lev_comp.l    Tue Jun  1 10:50:15 1993
  756. X***************
  757. X*** 1,5 ****
  758. X  %{
  759. X! /*    SCCS Id: @(#)lev_lex.c    3.1    92/07/12    */
  760. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  761. X  /* NetHack may be freely redistributed.  See license for details. */
  762. X  
  763. X--- 1,5 ----
  764. X  %{
  765. X! /*    SCCS Id: @(#)lev_lex.c    3.1    93/05/27    */
  766. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  767. X  /* NetHack may be freely redistributed.  See license for details. */
  768. X  
  769. X***************
  770. X*** 31,37 ****
  771. X  #  define VOIDYYPUT
  772. X  # endif
  773. X  # if !defined(VOIDYYPUT)
  774. X! #  if defined(POSIX_TYPES) && !defined(BOS) && !defined(HISX)
  775. X  #   define VOIDYYPUT
  776. X  #  endif
  777. X  # endif
  778. X--- 31,37 ----
  779. X  #  define VOIDYYPUT
  780. X  # endif
  781. X  # if !defined(VOIDYYPUT)
  782. X! #  if defined(POSIX_TYPES) && !defined(BOS) && !defined(HISX) && !defined(_M_UNIX)
  783. X  #   define VOIDYYPUT
  784. X  #  endif
  785. X  # endif
  786. X***************
  787. X*** 57,75 ****
  788. X  extern void FDECL(exit, (int));
  789. X  #endif
  790. X  
  791. X! /* this doesn't always get put in lev_comp.h
  792. X!  * (esp. when using older versions of bison)
  793. X   */
  794. X- 
  795. X  extern YYSTYPE yylval;
  796. X  
  797. X  int line_number = 1, colon_line_number = 1;
  798. X  
  799. X! /* This is *** UGLY *** but I can't think a better way to do it
  800. X   * I really need a huge buffer to scan maps...
  801. X   */
  802. X! 
  803. X  #undef YYLMAX
  804. X  #define YYLMAX    2048
  805. X  
  806. X  /*
  807. X--- 57,78 ----
  808. X  extern void FDECL(exit, (int));
  809. X  #endif
  810. X  
  811. X! /*
  812. X!  * This doesn't always get put in lev_comp.h
  813. X!  * (esp. when using older versions of bison).
  814. X   */
  815. X  extern YYSTYPE yylval;
  816. X  
  817. X  int line_number = 1, colon_line_number = 1;
  818. X  
  819. X! /*
  820. X!  * This is *** UGLY *** but I can't think a better way to do it;
  821. X   * I really need a huge buffer to scan maps...
  822. X+  * (This should probably be `#ifndef FLEX_SCANNER' since it's lex-specific.)
  823. X   */
  824. X! #ifdef YYLMAX
  825. X  #undef YYLMAX
  826. X+ #endif
  827. X  #define YYLMAX    2048
  828. X  
  829. X  /*
  830. X***************
  831. X*** 107,113 ****
  832. X  %s MAPC
  833. X  %%
  834. X  <MAPC>ENDMAP    {
  835. X! #ifdef FLEX_SCANNER
  836. X            /*
  837. X             * There is a bug in Flex 2.3 patch level < 6
  838. X             * (absent in previous versions)
  839. X--- 110,116 ----
  840. X  %s MAPC
  841. X  %%
  842. X  <MAPC>ENDMAP    {
  843. X! #ifdef FLEX23_BUG
  844. X            /*
  845. X             * There is a bug in Flex 2.3 patch level < 6
  846. X             * (absent in previous versions)
  847. X*** /tmp/da11646    Tue Jun  1 16:57:19 1993
  848. X--- util/lev_comp.y    Mon May 17 13:55:26 1993
  849. X***************
  850. X*** 1,5 ****
  851. X  %{
  852. X! /*    SCCS Id: @(#)lev_comp.c    3.1    93/02/13    */
  853. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  854. X  /* NetHack may be freely redistributed.  See license for details. */
  855. X  
  856. X--- 1,5 ----
  857. X  %{
  858. X! /*    SCCS Id: @(#)lev_comp.c    3.1    93/05/15    */
  859. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  860. X  /* NetHack may be freely redistributed.  See license for details. */
  861. X  
  862. X***************
  863. X*** 51,58 ****
  864. X  extern void FDECL(exit, (int));
  865. X  #endif
  866. X  
  867. X! extern void FDECL(yyerror, (char *));
  868. X! extern void FDECL(yywarning, (char *));
  869. X  extern int NDECL(yylex);
  870. X  int NDECL(yyparse);
  871. X  
  872. X--- 51,58 ----
  873. X  extern void FDECL(exit, (int));
  874. X  #endif
  875. X  
  876. X! extern void FDECL(yyerror, (const char *));
  877. X! extern void FDECL(yywarning, (const char *));
  878. X  extern int NDECL(yylex);
  879. X  int NDECL(yyparse);
  880. X  
  881. X***************
  882. X*** 68,74 ****
  883. X  extern void FDECL(scan_map, (char *));
  884. X  extern void NDECL(wallify_map);
  885. X  extern boolean NDECL(check_subrooms);
  886. X! extern void FDECL(check_coord, (int, int, char *));
  887. X  extern void NDECL(store_part);
  888. X  extern void NDECL(store_room);
  889. X  extern void FDECL(write_maze, (int, specialmaze *));
  890. X--- 68,74 ----
  891. X  extern void FDECL(scan_map, (char *));
  892. X  extern void NDECL(wallify_map);
  893. X  extern boolean NDECL(check_subrooms);
  894. X! extern void FDECL(check_coord, (int, int, const char *));
  895. X  extern void NDECL(store_part);
  896. X  extern void NDECL(store_room);
  897. X  extern void FDECL(write_maze, (int, specialmaze *));
  898. X***************
  899. X*** 137,143 ****
  900. X  
  901. X  extern int fatal_error;
  902. X  extern int want_warnings;
  903. X! extern char* fname;
  904. X  
  905. X  %}
  906. X  
  907. X--- 137,143 ----
  908. X  
  909. X  extern int fatal_error;
  910. X  extern int want_warnings;
  911. X! extern const char *fname;
  912. X  
  913. X  %}
  914. X  
  915. X*** /tmp/da11654    Tue Jun  1 16:57:22 1993
  916. X--- util/lev_main.c    Fri May 28 11:40:47 1993
  917. X***************
  918. X*** 1,4 ****
  919. X! /*    SCCS Id: @(#)lev_main.c    3.1    92/12/11    */
  920. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  921. X  /* NetHack may be freely redistributed.  See license for details. */
  922. X  
  923. X--- 1,4 ----
  924. X! /*    SCCS Id: @(#)lev_main.c    3.1    93/05/27    */
  925. X  /*    Copyright (c) 1989 by Jean-Christophe Collet */
  926. X  /* NetHack may be freely redistributed.  See license for details. */
  927. X  
  928. X***************
  929. X*** 56,63 ****
  930. X  extern void FDECL (init_yyout, (FILE *));
  931. X  
  932. X  int  FDECL (main, (int, char **));
  933. X! void FDECL (yyerror, (char *));
  934. X! void FDECL (yywarning, (char *));
  935. X  int  NDECL (yywrap);
  936. X  char *FDECL(dup_string,(const char *));
  937. X  int FDECL(get_floor_type, (CHAR_P));
  938. X--- 56,63 ----
  939. X  extern void FDECL (init_yyout, (FILE *));
  940. X  
  941. X  int  FDECL (main, (int, char **));
  942. X! void FDECL (yyerror, (const char *));
  943. X! void FDECL (yywarning, (const char *));
  944. X  int  NDECL (yywrap);
  945. X  char *FDECL(dup_string,(const char *));
  946. X  int FDECL(get_floor_type, (CHAR_P));
  947. X***************
  948. X*** 71,77 ****
  949. X  void FDECL(scan_map, (char *));
  950. X  void NDECL(wallify_map);
  951. X  boolean NDECL(check_subrooms);
  952. X! void FDECL(check_coord, (int, int, char *));
  953. X  void NDECL(store_part);
  954. X  void NDECL(store_room);
  955. X  static void FDECL(write_common_data, (int,int,lev_init *,long));
  956. X--- 71,77 ----
  957. X  void FDECL(scan_map, (char *));
  958. X  void NDECL(wallify_map);
  959. X  boolean NDECL(check_subrooms);
  960. X! void FDECL(check_coord, (int, int, const char *));
  961. X  void NDECL(store_part);
  962. X  void NDECL(store_room);
  963. X  static void FDECL(write_common_data, (int,int,lev_init *,long));
  964. X***************
  965. X*** 109,115 ****
  966. X  };
  967. X  
  968. X  static struct {
  969. X!     char *name;
  970. X      int type;
  971. X  } room_types[] = {
  972. X      /* for historical reasons, room types are not contiguous numbers */
  973. X--- 109,115 ----
  974. X  };
  975. X  
  976. X  static struct {
  977. X!     const char *name;
  978. X      int type;
  979. X  } room_types[] = {
  980. X      /* for historical reasons, room types are not contiguous numbers */
  981. X***************
  982. X*** 140,151 ****
  983. X      { 0, 0 }
  984. X  };
  985. X  
  986. X! char *fname = "(stdin)";
  987. X  int fatal_error = 0;
  988. X  int want_warnings = 0;
  989. X  
  990. X! /* Flex 2.3 bug work around */
  991. X  int yy_more_len = 0;
  992. X  
  993. X  extern char tmpmessage[];
  994. X  extern altar *tmpaltar[];
  995. X--- 140,153 ----
  996. X      { 0, 0 }
  997. X  };
  998. X  
  999. X! const char *fname = "(stdin)";
  1000. X  int fatal_error = 0;
  1001. X  int want_warnings = 0;
  1002. X  
  1003. X! #ifdef FLEX23_BUG
  1004. X! /* Flex 2.3 bug work around; not needed for 2.3.6 or later */
  1005. X  int yy_more_len = 0;
  1006. X+ #endif
  1007. X  
  1008. X  extern char tmpmessage[];
  1009. X  extern altar *tmpaltar[];
  1010. X***************
  1011. X*** 268,274 ****
  1012. X  
  1013. X  void
  1014. X  yyerror(s)
  1015. X! char *s;
  1016. X  {
  1017. X      (void) fprintf(stderr, "%s: line %d : %s\n", fname,
  1018. X          (*s >= 'A' && *s <= 'Z') ? colon_line_number : line_number, s);
  1019. X--- 270,276 ----
  1020. X  
  1021. X  void
  1022. X  yyerror(s)
  1023. X! const char *s;
  1024. X  {
  1025. X      (void) fprintf(stderr, "%s: line %d : %s\n", fname,
  1026. X          (*s >= 'A' && *s <= 'Z') ? colon_line_number : line_number, s);
  1027. X***************
  1028. X*** 284,290 ****
  1029. X  
  1030. X  void
  1031. X  yywarning(s)
  1032. X! char *s;
  1033. X  {
  1034. X      (void) fprintf(stderr, "%s: line %d : WARNING : %s\n",
  1035. X                  fname, colon_line_number, s);
  1036. X--- 286,292 ----
  1037. X  
  1038. X  void
  1039. X  yywarning(s)
  1040. X! const char *s;
  1041. X  {
  1042. X      (void) fprintf(stderr, "%s: line %d : WARNING : %s\n",
  1043. X                  fname, colon_line_number, s);
  1044. X***************
  1045. X*** 607,613 ****
  1046. X  void
  1047. X  check_coord(x, y, str)
  1048. X  int x, y;
  1049. X! char *str;
  1050. X  {
  1051. X      char ebuf[60];
  1052. X  
  1053. X--- 609,615 ----
  1054. X  void
  1055. X  check_coord(x, y, str)
  1056. X  int x, y;
  1057. X! const char *str;
  1058. X  {
  1059. X      char ebuf[60];
  1060. X  
  1061. X*** /tmp/da11662    Tue Jun  1 16:57:25 1993
  1062. X--- util/makedefs.c    Mon May 17 13:55:07 1993
  1063. X***************
  1064. X*** 13,18 ****
  1065. X--- 13,25 ----
  1066. X  #include "monsym.h"
  1067. X  #include "artilist.h"
  1068. X  
  1069. X+ /* version information */
  1070. X+ #ifdef SHORT_FILENAMES
  1071. X+ #include "patchlev.h"
  1072. X+ #else
  1073. X+ #include "patchlevel.h"
  1074. X+ #endif
  1075. X+ 
  1076. X  #ifdef MAC
  1077. X  # ifdef applec    /* Means the MPW compiler, I hope */
  1078. X  #  define MPWTOOL
  1079. X***************
  1080. X*** 40,47 ****
  1081. X  #endif
  1082. X  #define NULL    ((char *)0)
  1083. X  
  1084. X! #if !defined(LINT) && !defined(GCC_WARN)
  1085. X! static    const char    SCCS_Id[] = "@(#)makedefs.c\t3.1\t93/01/20";
  1086. X  #endif
  1087. X  
  1088. X  #ifdef MICRO
  1089. X--- 47,54 ----
  1090. X  #endif
  1091. X  #define NULL    ((char *)0)
  1092. X  
  1093. X! #if defined(UNIX) && !defined(LINT) && !defined(GCC_WARN)
  1094. X! static    const char    SCCS_Id[] = "@(#)makedefs.c\t3.1\t93/05/15";
  1095. X  #endif
  1096. X  
  1097. X  #ifdef MICRO
  1098. X***************
  1099. X*** 103,108 ****
  1100. X--- 110,120 ----
  1101. X      *Dont_Edit_Data =
  1102. X      "#\tThis data file is generated by 'makedefs'.  Do not edit. \n";
  1103. X  
  1104. X+ static struct {
  1105. X+     long    incarnation;
  1106. X+     long    features;
  1107. X+ } version;
  1108. X+ 
  1109. X  /* definitions used for vision tables */
  1110. X  #define TEST_WIDTH  COLNO
  1111. X  #define TEST_HEIGHT ROWNO
  1112. X***************
  1113. X*** 144,149 ****
  1114. X--- 156,162 ----
  1115. X  extern void NDECL(monst_init);        /* monst.c */
  1116. X  extern void NDECL(objects_init);    /* objects.c */
  1117. X  
  1118. X+ static void NDECL(make_version);
  1119. X  static char *FDECL(xcrypt, (const char *));
  1120. X  static int FDECL(check_control, (char *));
  1121. X  static char *FDECL(without_control, (char *));
  1122. X***************
  1123. X*** 174,185 ****
  1124. X  static int FDECL(clear_path, (int,int,int,int));
  1125. X  #endif
  1126. X  
  1127. X! char * FDECL(tmpdup, (const char *));
  1128. X! char * FDECL(limit, (char *,int));
  1129. X  
  1130. X  /* input, output, tmp */
  1131. X  
  1132. X! FILE    *ifp, *ofp, *tfp;
  1133. X  
  1134. X  #ifdef MACsansMPWTOOL
  1135. X  char mac_opt;
  1136. X--- 187,198 ----
  1137. X  static int FDECL(clear_path, (int,int,int,int));
  1138. X  #endif
  1139. X  
  1140. X! static char *FDECL(tmpdup, (const char *));
  1141. X! static char *FDECL(limit, (char *,int));
  1142. X  
  1143. X  /* input, output, tmp */
  1144. X  
  1145. X! static FILE *ifp, *ofp, *tfp;
  1146. X  
  1147. X  #ifdef MACsansMPWTOOL
  1148. X  char mac_opt;
  1149. X***************
  1150. X*** 228,233 ****
  1151. X--- 241,249 ----
  1152. X      monst_init();
  1153. X      objects_init();
  1154. X  
  1155. X+     /* construct the current version number */
  1156. X+     make_version();
  1157. X+ 
  1158. X  #ifdef MACsansMPWTOOL
  1159. X      while (1) {
  1160. X          macstart();
  1161. X***************
  1162. X*** 390,395 ****
  1163. X--- 406,492 ----
  1164. X      return;
  1165. X  }
  1166. X  
  1167. X+ static void
  1168. X+ make_version()
  1169. X+ {
  1170. X+     /*
  1171. X+      * integer version number
  1172. X+      */
  1173. X+     version.incarnation = ((long)VERSION_MAJOR << 24) |
  1174. X+                 ((long)VERSION_MINOR << 16) |
  1175. X+                 ((long)PATCHLEVEL << 8) |
  1176. X+                 ((long)EDITLEVEL);
  1177. X+     /*
  1178. X+      * encoded feature list
  1179. X+      * Note:  if any of these magic numbers are changed or reassigned,
  1180. X+      * EDITLEVEL in patchlevel.h should be incremented at the same time.
  1181. X+      * The actual values have no special meaning, and the category
  1182. X+      * groupings are just for convenience.
  1183. X+      */
  1184. X+     version.features = 0
  1185. X+         /* levels and/or topology (0..4) */
  1186. X+ #ifdef MULDGN
  1187. X+             | (1L <<  0)
  1188. X+ #endif
  1189. X+ #ifdef REINCARNATION
  1190. X+             | (1L <<  1)
  1191. X+ #endif
  1192. X+ #ifdef SINKS
  1193. X+             | (1L <<  2)
  1194. X+ #endif
  1195. X+         /* monsters (5..9) */
  1196. X+ #ifdef ARMY
  1197. X+             | (1L <<  5)
  1198. X+ #endif
  1199. X+ #ifdef KOPS
  1200. X+             | (1L <<  6)
  1201. X+ #endif
  1202. X+ #ifdef MAIL
  1203. X+             | (1L <<  7)
  1204. X+ #endif
  1205. X+         /* objects (10..14) */
  1206. X+ #ifdef TOURIST
  1207. X+             | (1L << 10)
  1208. X+ #endif
  1209. X+ #ifdef TUTTI_FRUTTI
  1210. X+             | (1L << 11)
  1211. X+ #endif
  1212. X+ #ifdef WALKIES
  1213. X+             | (1L << 12)
  1214. X+ #endif
  1215. X+         /* flag bits and/or other global variables (15..26) */
  1216. X+ #ifdef MUSE
  1217. X+             | (1L << 15)
  1218. X+ #endif
  1219. X+ #ifdef POLYSELF
  1220. X+             | (1L << 16)
  1221. X+ #endif
  1222. X+ #ifdef TEXTCOLOR
  1223. X+             | (1L << 17)
  1224. X+ #endif
  1225. X+ #ifdef INSURANCE
  1226. X+             | (1L << 18)
  1227. X+ #endif
  1228. X+ #ifdef ELBERETH
  1229. X+             | (1L << 19)
  1230. X+ #endif
  1231. X+ #ifdef EXP_ON_BOTL
  1232. X+             | (1L << 20)
  1233. X+ #endif
  1234. X+ #ifdef SCORE_ON_BOTL
  1235. X+             | (1L << 21)
  1236. X+ #endif
  1237. X+         /* data format [COMPRESS excluded] (27..31) */
  1238. X+ #ifdef ZEROCOMP
  1239. X+             | (1L << 27)
  1240. X+ #endif
  1241. X+ #ifdef RLECOMP
  1242. X+             | (1L << 28)
  1243. X+ #endif
  1244. X+             ;
  1245. X+     return;
  1246. X+ }
  1247. X+ 
  1248. X  void
  1249. X  do_date()
  1250. X  {
  1251. X***************
  1252. X*** 401,407 ****
  1253. X          perror(filename);
  1254. X          exit(1);
  1255. X      }
  1256. X!     Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.1\t92/01/04 */\n\n");
  1257. X      Fprintf(ofp,Dont_Edit_Code);
  1258. X  
  1259. X  #ifdef KR1ED
  1260. X--- 498,504 ----
  1261. X          perror(filename);
  1262. X          exit(1);
  1263. X      }
  1264. X!     Fprintf(ofp,"/*\tSCCS Id: @(#)date.h\t3.1\t92/04/07 */\n\n");
  1265. X      Fprintf(ofp,Dont_Edit_Code);
  1266. X  
  1267. X  #ifdef KR1ED
  1268. X***************
  1269. X*** 414,426 ****
  1270. X      for(c = cbuf; *c != '\n'; c++);    *c = 0; /* strip off the '\n' */
  1271. X      Fprintf(ofp,"#define BUILD_DATE \"%s\"\n", cbuf);
  1272. X      Fprintf(ofp,"#define BUILD_TIME (%ldL)\n", clocktim);
  1273. X  #ifdef AMIGA
  1274. X      {
  1275. X      struct tm *tm = localtime((time_t *) &clocktim);
  1276. X      Fprintf(ofp,"#ifdef AMIGA\n");
  1277. X      Fprintf(ofp,"const char amiga_version_string[] = ");
  1278. X!     Fprintf(ofp,"\"\\0$VER: NetHack %s (%d.%d.%d)\";\n",VERSION,tm->tm_mday,
  1279. X!         tm->tm_mon+1,tm->tm_year);
  1280. X      Fprintf(ofp,"#endif\n");
  1281. X      }
  1282. X  #endif
  1283. X--- 511,528 ----
  1284. X      for(c = cbuf; *c != '\n'; c++);    *c = 0; /* strip off the '\n' */
  1285. X      Fprintf(ofp,"#define BUILD_DATE \"%s\"\n", cbuf);
  1286. X      Fprintf(ofp,"#define BUILD_TIME (%ldL)\n", clocktim);
  1287. X+     Fprintf(ofp,"\n");
  1288. X+     Fprintf(ofp,"#define VERSION_NUMBER 0x%08lxL\n", version.incarnation);
  1289. X+     Fprintf(ofp,"#define VERSION_FEATURES 0x%08lxL\n", version.features);
  1290. X+     Fprintf(ofp,"\n");
  1291. X  #ifdef AMIGA
  1292. X      {
  1293. X      struct tm *tm = localtime((time_t *) &clocktim);
  1294. X      Fprintf(ofp,"#ifdef AMIGA\n");
  1295. X      Fprintf(ofp,"const char amiga_version_string[] = ");
  1296. X!     Fprintf(ofp,"\"\\0$VER: NetHack %d.%d.%d (%d.%d.%d)\";\n",
  1297. X!         VERSION_MAJOR, VERSION_MINOR, PATCHLEVEL,
  1298. X!         tm->tm_mday, tm->tm_mon+1, tm->tm_year);
  1299. X      Fprintf(ofp,"#endif\n");
  1300. X      }
  1301. X  #endif
  1302. X***************
  1303. X*** 445,470 ****
  1304. X          "command line completion",
  1305. X  #endif
  1306. X  #ifdef COMPRESS
  1307. X!         "compress bones/level/save files",
  1308. X  #endif
  1309. X  #ifdef ELBERETH
  1310. X          "Elbereth",
  1311. X  #endif
  1312. X  #ifdef EXP_ON_BOTL
  1313. X!         "experience points on bottom line",
  1314. X  #endif
  1315. X  #ifdef EXPLORE_MODE
  1316. X          "explore mode",
  1317. X  #endif
  1318. X- #ifdef WALLIFIED_MAZE
  1319. X-         "fancy mazes",
  1320. X- #endif
  1321. X  #ifdef MFLOPPY
  1322. X          "floppy drive support",
  1323. X  #endif
  1324. X  #ifdef TUTTI_FRUTTI
  1325. X!         "fruits",
  1326. X  #endif
  1327. X  #ifdef KOPS
  1328. X          "Keystone Kops",
  1329. X  #endif
  1330. X--- 547,575 ----
  1331. X          "command line completion",
  1332. X  #endif
  1333. X  #ifdef COMPRESS
  1334. X!         "data file compression",
  1335. X  #endif
  1336. X+ #ifdef WIZARD
  1337. X+         "debug mode",
  1338. X+ #endif
  1339. X  #ifdef ELBERETH
  1340. X          "Elbereth",
  1341. X  #endif
  1342. X  #ifdef EXP_ON_BOTL
  1343. X!         "experience points on status line",
  1344. X  #endif
  1345. X  #ifdef EXPLORE_MODE
  1346. X          "explore mode",
  1347. X  #endif
  1348. X  #ifdef MFLOPPY
  1349. X          "floppy drive support",
  1350. X  #endif
  1351. X  #ifdef TUTTI_FRUTTI
  1352. X!         "fruit names",
  1353. X  #endif
  1354. X+ #ifdef INSURANCE
  1355. X+         "insurance against game crashes",
  1356. X+ #endif
  1357. X  #ifdef KOPS
  1358. X          "Keystone Kops",
  1359. X  #endif
  1360. X***************
  1361. X*** 493,514 ****
  1362. X          "quest dungeon",
  1363. X  #endif
  1364. X  #ifdef REDO
  1365. X!         "redoing commands",
  1366. X  #endif
  1367. X  #ifdef REINCARNATION
  1368. X          "rogue level",
  1369. X  #endif
  1370. X  #ifdef SCORE_ON_BOTL
  1371. X!         "score on bottom line",
  1372. X  #endif
  1373. X  #ifdef CLIPPING
  1374. X          "screen clipping",
  1375. X  #endif
  1376. X  #ifdef SEDUCE
  1377. X          "seduction",
  1378. X  #endif
  1379. X  #ifdef POLYSELF
  1380. X!         "self-polymorphing",
  1381. X  #endif
  1382. X  #ifdef SHELL
  1383. X          "shell command",
  1384. X--- 598,633 ----
  1385. X          "quest dungeon",
  1386. X  #endif
  1387. X  #ifdef REDO
  1388. X!         "redo command",
  1389. X  #endif
  1390. X  #ifdef REINCARNATION
  1391. X          "rogue level",
  1392. X  #endif
  1393. X  #ifdef SCORE_ON_BOTL
  1394. X!         "score on status line",
  1395. X  #endif
  1396. X  #ifdef CLIPPING
  1397. X          "screen clipping",
  1398. X  #endif
  1399. X+ #ifdef NO_TERMS
  1400. X+ # ifdef MAC
  1401. X+         "screen control via mactty",
  1402. X+ # endif
  1403. X+ # ifdef SCREEN_BIOS
  1404. X+         "screen control via BIOS",
  1405. X+ # endif
  1406. X+ # ifdef SCREEN_DJGPPFAST
  1407. X+         "screen control via DJGPP fast",
  1408. X+ # endif
  1409. X+ # ifdef WIN32CON
  1410. X+         "screen control via WIN32 console I/O",
  1411. X+ # endif
  1412. X+ #endif
  1413. X  #ifdef SEDUCE
  1414. X          "seduction",
  1415. X  #endif
  1416. X  #ifdef POLYSELF
  1417. X!         "self-polymorph",
  1418. X  #endif
  1419. X  #ifdef SHELL
  1420. X          "shell command",
  1421. X***************
  1422. X*** 535,542 ****
  1423. X  #ifdef VISION_TABLES
  1424. X          "vision tables",
  1425. X  #endif
  1426. X! #ifdef WIZARD
  1427. X!         "wizard mode",
  1428. X  #endif
  1429. X  #ifdef ZEROCOMP
  1430. X          "zero-compressed save files",
  1431. X--- 654,661 ----
  1432. X  #ifdef VISION_TABLES
  1433. X          "vision tables",
  1434. X  #endif
  1435. X! #ifdef WALLIFIED_MAZE
  1436. X!         "walled mazes",
  1437. X  #endif
  1438. X  #ifdef ZEROCOMP
  1439. X          "zero-compressed save files",
  1440. X***************
  1441. X*** 571,579 ****
  1442. X          perror(filename);
  1443. X          exit(1);
  1444. X      }
  1445. X-      /* Fprintf(ofp,Dont_Edit_Data); */
  1446. X-     Fprintf(ofp,"\nOptions compiled into this version of NetHack:\n");
  1447. X  
  1448. X      length = COLNO + 1;    /* force 1st item onto new line */
  1449. X      for (i = 0; i < SIZE(build_opts); i++) {
  1450. X          str = build_opts[i];
  1451. X--- 690,706 ----
  1452. X          perror(filename);
  1453. X          exit(1);
  1454. X      }
  1455. X  
  1456. X+     Fprintf(ofp,
  1457. X+ #ifdef BETA
  1458. X+         "\n    NetHack version %d.%d.%d [beta]\n",
  1459. X+ #else
  1460. X+         "\n    NetHack version %d.%d.%d\n",
  1461. X+ #endif
  1462. X+         VERSION_MAJOR, VERSION_MINOR, PATCHLEVEL);
  1463. X+ 
  1464. X+     Fprintf(ofp,"\nOptions compiled into this edition:\n");
  1465. X+ 
  1466. X      length = COLNO + 1;    /* force 1st item onto new line */
  1467. X      for (i = 0; i < SIZE(build_opts); i++) {
  1468. X          str = build_opts[i];
  1469. X***************
  1470. X*** 660,666 ****
  1471. X      Sprintf(tempfile, DATA_TEMPLATE, "database.tmp");
  1472. X      Sprintf(filename, DATA_TEMPLATE, DATA_FILE);
  1473. X      Strcat(strcpy(infile, filename),
  1474. X! #if (defined(OS2) && !defined(OS2_HPFS)) || defined(WIN32)
  1475. X          ".bas"
  1476. X  #else
  1477. X          ".base"
  1478. X--- 787,793 ----
  1479. X      Sprintf(tempfile, DATA_TEMPLATE, "database.tmp");
  1480. X      Sprintf(filename, DATA_TEMPLATE, DATA_FILE);
  1481. X      Strcat(strcpy(infile, filename),
  1482. X! #ifdef SHORT_FILENAMES
  1483. X          ".bas"
  1484. X  #else
  1485. X          ".base"
  1486. X***************
  1487. X*** 933,939 ****
  1488. X      if(s[0] != '%') return(-1);
  1489. X  
  1490. X      for(i = 0; deflist[i].defname; i++)
  1491. X!         if(!strncmp(deflist[i].defname, s+1, sizeof(deflist[i].defname)))
  1492. X          return(i);
  1493. X  
  1494. X      return(-1);
  1495. X--- 1060,1066 ----
  1496. X      if(s[0] != '%') return(-1);
  1497. X  
  1498. X      for(i = 0; deflist[i].defname; i++)
  1499. X!         if(!strncmp(deflist[i].defname, s+1, strlen(deflist[i].defname)))
  1500. X          return(i);
  1501. X  
  1502. X      return(-1);
  1503. X***************
  1504. X*** 1415,1421 ****
  1505. X  
  1506. X  static    char    temp[32];
  1507. X  
  1508. X! char *
  1509. X  limit(name,pref)    /* limit a name to 30 characters length */
  1510. X  char    *name;
  1511. X  int    pref;
  1512. X--- 1542,1548 ----
  1513. X  
  1514. X  static    char    temp[32];
  1515. X  
  1516. X! static char *
  1517. X  limit(name,pref)    /* limit a name to 30 characters length */
  1518. X  char    *name;
  1519. X  int    pref;
  1520. X***************
  1521. X*** 1541,1547 ****
  1522. X      return;
  1523. X  }
  1524. X  
  1525. X! char *
  1526. X  tmpdup(str)
  1527. X  const char *str;
  1528. X  {
  1529. X--- 1668,1674 ----
  1530. X      return;
  1531. X  }
  1532. X  
  1533. X! static char *
  1534. X  tmpdup(str)
  1535. X  const char *str;
  1536. X  {
  1537. X*** /tmp/da11678    Tue Jun  1 16:57:31 1993
  1538. X--- util/recover.c    Mon May 17 13:55:18 1993
  1539. X***************
  1540. X*** 1,4 ****
  1541. X! /* recover.c - NetHack version 3.1 */
  1542. X  
  1543. X  /*
  1544. X   *  Utility for reconstructing NetHack save file from a set of individual
  1545. X--- 1,6 ----
  1546. X! /*    SCCS Id: @(#)recover.c    3.1    93/05/15    */
  1547. X! /*    Copyright (c) Janet Walz, 1992.                  */
  1548. X! /* NetHack may be freely redistributed.  See license for details. */
  1549. X  
  1550. X  /*
  1551. X   *  Utility for reconstructing NetHack save file from a set of individual
  1552. X***************
  1553. X*** 25,31 ****
  1554. X  int FDECL(restore_savefile, (char *));
  1555. X  void FDECL(set_levelfile_name, (int));
  1556. X  int FDECL(open_levelfile, (int));
  1557. X! int FDECL(create_savefile, (char *));
  1558. X  void FDECL(copy_bytes, (int,int));
  1559. X  
  1560. X  #ifdef UNIX
  1561. X--- 27,33 ----
  1562. X  int FDECL(restore_savefile, (char *));
  1563. X  void FDECL(set_levelfile_name, (int));
  1564. X  int FDECL(open_levelfile, (int));
  1565. X! int NDECL(create_savefile);
  1566. X  void FDECL(copy_bytes, (int,int));
  1567. X  
  1568. X  #ifdef UNIX
  1569. X***************
  1570. X*** 47,53 ****
  1571. X  char *argv[];
  1572. X  {
  1573. X      int argno;
  1574. X!     char *dir = (char *)0;
  1575. X  
  1576. X      if (argc == 1 || (argc == 2 && !strcmp(argv[1], "-"))) {
  1577. X          (void) fprintf(stderr,
  1578. X--- 49,58 ----
  1579. X  char *argv[];
  1580. X  {
  1581. X      int argno;
  1582. X!     const char *dir = (char *)0;
  1583. X! #ifdef AMIGA
  1584. X!     char *startdir = (char *)0;
  1585. X! #endif
  1586. X  
  1587. X      if (argc == 1 || (argc == 2 && !strcmp(argv[1], "-"))) {
  1588. X          (void) fprintf(stderr,
  1589. X***************
  1590. X*** 90,96 ****
  1591. X      if (!dir) dir = HACKDIR;
  1592. X  #endif
  1593. X  
  1594. X!     if (dir && chdir(dir) < 0) {
  1595. X          (void) fprintf(stderr, "%s: cannot chdir to %s.\n",
  1596. X                  argv[0], dir);
  1597. X          exit(1);
  1598. X--- 95,104 ----
  1599. X      if (!dir) dir = HACKDIR;
  1600. X  #endif
  1601. X  
  1602. X! #ifdef AMIGA
  1603. X!     startdir = getcwd(0,255);
  1604. X! #endif
  1605. X!     if (dir && chdir((char *) dir) < 0) {
  1606. X          (void) fprintf(stderr, "%s: cannot chdir to %s.\n",
  1607. X                  argv[0], dir);
  1608. X          exit(1);
  1609. X***************
  1610. X*** 100,105 ****
  1611. X--- 108,116 ----
  1612. X          (void) restore_savefile(argv[argno]);
  1613. X          argno++;
  1614. X      }
  1615. X+ #ifdef AMIGA
  1616. X+     if (startdir) (void)chdir(startdir);
  1617. X+ #endif
  1618. X  #ifndef VMS
  1619. X      return 0;
  1620. X  #else
  1621. X***************
  1622. X*** 143,150 ****
  1623. X  }
  1624. X  
  1625. X  int
  1626. X! create_savefile(savename)
  1627. X! char *savename;
  1628. X  {
  1629. X      int fd;
  1630. X  
  1631. X--- 154,160 ----
  1632. X  }
  1633. X  
  1634. X  int
  1635. X! create_savefile()
  1636. X  {
  1637. X      int fd;
  1638. X  
  1639. X***************
  1640. X*** 209,215 ****
  1641. X       *    (non-level-based) game state
  1642. X       *    other levels
  1643. X       */
  1644. X!     sfd = create_savefile(savename);
  1645. X      if (sfd < 0) {
  1646. X          (void) fprintf(stderr, "Cannot create savefile %s.\n", savename);
  1647. X          (void) close(gfd);
  1648. X--- 219,225 ----
  1649. X       *    (non-level-based) game state
  1650. X       *    other levels
  1651. X       */
  1652. X!     sfd = create_savefile();
  1653. X      if (sfd < 0) {
  1654. X          (void) fprintf(stderr, "Cannot create savefile %s.\n", savename);
  1655. X          (void) close(gfd);
  1656. X*** /tmp/da13252    Tue Jun  1 17:53:27 1993
  1657. X--- win/X11/Install.X11    Tue May 25 15:06:03 1993
  1658. X***************
  1659. X*** 3,12 ****
  1660. X  potential for NetHack, little of which is realized here.  If you have ideas
  1661. X  and extra time, feel free to send in improvements!
  1662. X  
  1663. X! There are no explicit UNIX dependencies in this code, but it is only
  1664. X! known to work under UNIX, using X11R4 or X11R5.  Other X11R4+ platforms
  1665. X! may work as well, with some tweaking likely.  Follow WIN* in
  1666. X! sys/unix/Makefile.src for compilation hints.
  1667. X  
  1668. X  (If you try to compile it with X11R3 or earlier, you will get many errors,
  1669. X  starting with complaints about XtPointer not being declared.  If you get
  1670. X--- 3,14 ----
  1671. X  potential for NetHack, little of which is realized here.  If you have ideas
  1672. X  and extra time, feel free to send in improvements!
  1673. X  
  1674. X! There are no explicit UNIX dependencies in this code, but we have only
  1675. X! tested it under UNIX, using X11R4 or X11R5.  We have two reports that the
  1676. X! code also works under DesqView/X on MS-DOS with djgpp, but you will have
  1677. X! to add dependencies for the X code to that makefile before you can use it.
  1678. X! Other X11R4+ platforms may work as well, with some tweaking likely.
  1679. X! Follow WIN* in sys/unix/Makefile.src for compilation hints.
  1680. X  
  1681. X  (If you try to compile it with X11R3 or earlier, you will get many errors,
  1682. X  starting with complaints about XtPointer not being declared.  If you get
  1683. X***************
  1684. X*** 82,97 ****
  1685. X  needed for systems that don't use X11.
  1686. X  
  1687. X  Notes for Sun's OpenWindows:
  1688. X!     1.    For OpenWindows 3.x (NOT 2.x), define OPENWINBUG in include/unixconf.h.
  1689. X      The library bug from SunOS 4.1.x is apparently fixed in Solaris 2.x, 
  1690. X      so it is also unnecessary there.  (Defining it when unnecessary
  1691. X      causes the same problem being avoided when it is necessary. :-)
  1692. X-     Add -I/usr/openwin/include to CFLAGS, -L/usr/openwin/lib to LFLAGS,
  1693. X-     and -lm to WINX11LIB in src/Makefile.  (Naturally, if your OpenWindows
  1694. X-     is installed elsewhere, adapt the two openwin paths.)  This will
  1695. X-     allow you to create a game executable.
  1696. X  
  1697. X!     2.    Run the fonts through convertfont and run bldfamily on the directory.
  1698. X      Now you must let your X server know where to find the fonts.  For a
  1699. X      personal installation, the simplest thing is to include the directory
  1700. X      of the fonts in the environment variable FONTPATH, as set in your
  1701. X--- 84,109 ----
  1702. X  needed for systems that don't use X11.
  1703. X  
  1704. X  Notes for Sun's OpenWindows:
  1705. X!     1.    For OpenWindows 3.0 (NOT 2.x), define OPENWINBUG in include/unixconf.h.
  1706. X      The library bug from SunOS 4.1.x is apparently fixed in Solaris 2.x, 
  1707. X      so it is also unnecessary there.  (Defining it when unnecessary
  1708. X      causes the same problem being avoided when it is necessary. :-)
  1709. X  
  1710. X!     2.  In addition to the changes suggested by the comments in src/Makefile,
  1711. X! 
  1712. X!     -- for OpenWindows 2.x and 3.0 (NOT 3.1) (i.e., versions for SunOS 4.x),
  1713. X!        add -I/usr/openwin/include to CFLAGS, -L/usr/openwin/lib to LFLAGS,
  1714. X!        and -lm to WINX11LIB in src/Makefile.
  1715. X! 
  1716. X!     -- for OpenWindows 3.1 (i.e., versions for Solaris 2.x), add
  1717. X!        -I/usr/openwin/include to CFLAGS, -L/usr/openwin/lib -L/usr/ccs/lib
  1718. X!        -R/usr/openwin/lib to LFLAGS, and -lsocket -lnsl -lm
  1719. X!        to WINX11LIB in src/Makefile.
  1720. X! 
  1721. X!     (Naturally, if your OpenWindows is installed elsewhere, adapt the
  1722. X!     openwin paths.)  This will allow you to create a game executable.
  1723. X! 
  1724. X!     3.    Run the fonts through convertfont and run bldfamily on the directory.
  1725. X      Now you must let your X server know where to find the fonts.  For a
  1726. X      personal installation, the simplest thing is to include the directory
  1727. X      of the fonts in the environment variable FONTPATH, as set in your
  1728. X***************
  1729. X*** 99,107 ****
  1730. X      installation, you have the various "xset fp+" options outlined
  1731. X      above for standard X.
  1732. X  
  1733. X!     3.  Something must still be done with the NetHack.ad file -- all three
  1734. X      of the possibilities mentioned for standard X11 should work.
  1735. X  
  1736. X  
  1737. X  File                Description
  1738. X  ---------    ---------------------------------------------------------------
  1739. X--- 111,127 ----
  1740. X      installation, you have the various "xset fp+" options outlined
  1741. X      above for standard X.
  1742. X  
  1743. X!     4.  Something must still be done with the NetHack.ad file -- all three
  1744. X      of the possibilities mentioned for standard X11 should work.
  1745. X  
  1746. X+ 
  1747. X+ Notes for XFree86 - (on linux and BSD386 platforms)
  1748. X+ 
  1749. X+     1.  Edit src/Makefile for linux/BSD386. Even though you use the 
  1750. X+     Open Look Window manager, do not define OPENWINBUG.  Use the 
  1751. X+     standard X11 object and library options.
  1752. X+ 
  1753. X+     2.  Follow the standard installation directions defined above.
  1754. X  
  1755. X  File                Description
  1756. X  ---------    ---------------------------------------------------------------
  1757. X*** /tmp/da13268    Tue Jun  1 17:53:31 1993
  1758. X--- win/X11/Window.c    Fri Apr 23 14:29:42 1993
  1759. X***************
  1760. X*** 11,17 ****
  1761. X--- 11,25 ----
  1762. X  #define PRESERVE_NO_SYSV    /* X11 include files may define SYSV */
  1763. X  #endif
  1764. X  
  1765. X+ #ifdef MSDOS            /* from compiler */
  1766. X+ #define SHORT_FILENAMES
  1767. X+ #endif
  1768. X+ 
  1769. X+ #ifdef SHORT_FILENAMES
  1770. X+ #include <X11/IntrinsP.h>
  1771. X+ #else
  1772. X  #include <X11/IntrinsicP.h>
  1773. X+ #endif
  1774. X  #include <X11/StringDefs.h>
  1775. X  
  1776. X  #ifdef PRESERVE_NO_SYSV
  1777. X*** /tmp/da13292    Tue Jun  1 17:53:37 1993
  1778. X--- win/X11/nethack.rc    Wed Mar 17 16:45:19 1993
  1779. X***************
  1780. X*** 8,15 ****
  1781. X  #
  1782. X  #
  1783. X  OPTIONS=windowtype:x11
  1784. X! OPTIONS=confirm,male,fixinv,nopickup,safe_pet,sortpack,tombstone,verbose,news
  1785. X! OPTIONS=fruit:pineapple
  1786. X  OPTIONS=dogname:Dhairrhuwyth
  1787. X  OPTIONS=catname:Ghisteslwchlohm
  1788. X  #
  1789. X--- 8,15 ----
  1790. X  #
  1791. X  #
  1792. X  OPTIONS=windowtype:x11
  1793. X! OPTIONS=confirm,male,fixinv,noautopickup,safe_pet,sortpack,tombstone
  1794. X! OPTIONS=verbose,news,fruit:pineapple
  1795. X  OPTIONS=dogname:Dhairrhuwyth
  1796. X  OPTIONS=catname:Ghisteslwchlohm
  1797. X  #
  1798. X*** /tmp/da13332    Tue Jun  1 17:53:48 1993
  1799. X--- win/X11/winX.c    Fri Apr 23 14:29:07 1993
  1800. X***************
  1801. X*** 12,17 ****
  1802. X--- 12,21 ----
  1803. X  #define PRESERVE_NO_SYSV    /* X11 include files may define SYSV */
  1804. X  #endif
  1805. X  
  1806. X+ #ifdef MSDOS            /* from compiler */
  1807. X+ #define SHORT_FILENAMES
  1808. X+ #endif
  1809. X+ 
  1810. X  #include <X11/Intrinsic.h>
  1811. X  #include <X11/StringDefs.h>
  1812. X  #include <X11/Shell.h>
  1813. X***************
  1814. X*** 23,29 ****
  1815. X--- 27,37 ----
  1816. X  #include <X11/Xos.h>
  1817. X  
  1818. X  /* for color support; should be ifdef TEXTCOLOR, but must come before hack.h */
  1819. X+ #ifdef SHORT_FILENAMES
  1820. X+ #include <X11/IntrinsP.h>
  1821. X+ #else
  1822. X  #include <X11/IntrinsicP.h>
  1823. X+ #endif
  1824. X  
  1825. X  #ifdef PRESERVE_NO_SYSV
  1826. X  # ifdef SYSV
  1827. X***************
  1828. X*** 109,117 ****
  1829. X--- 117,130 ----
  1830. X  #endif /* COM_COMPL */
  1831. X      X11_number_pad,
  1832. X      X11_delay_output,
  1833. X+ #ifdef CHANGE_COLOR    /* only a Mac option currently */
  1834. X+     donull,
  1835. X+     donull,
  1836. X+ #endif
  1837. X      /* other defs that really should go away (they're tty specific) */
  1838. X      X11_start_screen,
  1839. X      X11_end_screen,
  1840. X+     genl_outrip,
  1841. X  };
  1842. X  
  1843. X  /*
  1844. X*** /tmp/da13348    Tue Jun  1 17:53:53 1993
  1845. X--- win/X11/winmenu.c    Wed May 19 10:08:41 1993
  1846. X***************
  1847. X*** 35,47 ****
  1848. X  static void FDECL(clear_old_menu, (struct xwindow *));
  1849. X  static char *FDECL(copy_of, (const char *));
  1850. X  
  1851. X- #define check_menu(func_name)                    \
  1852. X- {                                \
  1853. X-     if (!menu_info->is_menu) {                    \
  1854. X-     impossible("%s:  called before start_menu", func_name);    \
  1855. X-     return;                            \
  1856. X-     }                                \
  1857. X- }
  1858. X  
  1859. X  static char menu_selected;    /* selected menu item */
  1860. X  static const char menu_translations[] =
  1861. X--- 35,40 ----
  1862. X***************
  1863. X*** 175,181 ****
  1864. X  
  1865. X      check_winid(window);
  1866. X      menu_info = window_list[window].menu_information;
  1867. X!     check_menu("add_menu");
  1868. X  
  1869. X      item = (struct menu_item *) alloc((unsigned)sizeof(struct menu_item));
  1870. X      item->next = (struct menu_item *) 0;
  1871. X--- 168,177 ----
  1872. X  
  1873. X      check_winid(window);
  1874. X      menu_info = window_list[window].menu_information;
  1875. X!     if (!menu_info->is_menu) {
  1876. X!     impossible("add_menu:  called before start_menu");
  1877. X!     return;
  1878. X!     }
  1879. X  
  1880. X      item = (struct menu_item *) alloc((unsigned)sizeof(struct menu_item));
  1881. X      item->next = (struct menu_item *) 0;
  1882. X***************
  1883. X*** 202,208 ****
  1884. X      struct menu_info_t *menu_info;
  1885. X      check_winid(window);
  1886. X      menu_info = window_list[window].menu_information;
  1887. X!     check_menu("end_menu");
  1888. X  
  1889. X      if(morestr && strlen(morestr))
  1890. X      X11_add_menu(window, 0, 0, morestr);
  1891. X--- 198,207 ----
  1892. X      struct menu_info_t *menu_info;
  1893. X      check_winid(window);
  1894. X      menu_info = window_list[window].menu_information;
  1895. X!     if (!menu_info->is_menu) {
  1896. X!     impossible("end_menu:  called before start_menu");
  1897. X!     return;
  1898. X!     }
  1899. X  
  1900. X      if(morestr && strlen(morestr))
  1901. X      X11_add_menu(window, 0, 0, morestr);
  1902. X***************
  1903. X*** 229,246 ****
  1904. X      check_winid(window);
  1905. X      wp = &window_list[window];
  1906. X      menu_info = wp->menu_information;
  1907. X! 
  1908. X! #if defined(LINT) || defined(GCC_WARN)
  1909. X!     {
  1910. X!     /* cannot use check_menu, since it doesn't return anything */
  1911. X!     if (!menu_info->is_menu) {
  1912. X!         impossible("%s:  called before start_menu", "select_menu");
  1913. X!         return '\0';
  1914. X!     }
  1915. X      }
  1916. X- #else
  1917. X-     check_menu("select_menu");
  1918. X- #endif
  1919. X  
  1920. X  #ifdef VERBOSE
  1921. X      /* ********** */
  1922. X--- 228,237 ----
  1923. X      check_winid(window);
  1924. X      wp = &window_list[window];
  1925. X      menu_info = wp->menu_information;
  1926. X!     if (!menu_info->is_menu) {
  1927. X!     impossible("select_menu:  called before start_menu");
  1928. X!     return '\0';
  1929. X      }
  1930. X  
  1931. X  #ifdef VERBOSE
  1932. X      /* ********** */
  1933. X*** /tmp/da13372    Tue Jun  1 17:53:59 1993
  1934. X--- win/X11/winstat.c    Wed Mar 10 17:27:15 1993
  1935. X***************
  1936. X*** 234,239 ****
  1937. X--- 234,240 ----
  1938. X  /*
  1939. X   * Notes:
  1940. X   * + Alignment needs a different init value, because -1 is an alignment.
  1941. X+  * + Armor Class is an schar, so 256 is out of range.
  1942. X   * + Blank value is 0 and should never change.
  1943. X   */
  1944. X  static struct X_status_value shown_stats[NUM_STATS] = {
  1945. X***************
  1946. X*** 251,265 ****
  1947. X      { "Max HP",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },    /*10*/
  1948. X      { "Power",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1949. X      { "Max Power",    SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1950. X!     { "Armor Class",    SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1951. X      { "Level",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1952. X      { "Experience",    SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },    /*15*/
  1953. X      { "Alignment",    SV_VALUE, (Widget) 0, -2, 0, FALSE, FALSE },
  1954. X!     { "Time",        SV_VALUE, (Widget) 0, -2, 0, FALSE, FALSE },
  1955. X!     { "Score",        SV_VALUE, (Widget) 0, -2, 0, FALSE, FALSE },
  1956. X  
  1957. X!     { "",        SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE }, /* hunger*/
  1958. X!     { "Confused",    SV_NAME,  (Widget) 0,  1, 0, FALSE, TRUE },    /*20*/
  1959. X      { "Sick",        SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },
  1960. X      { "Blind",        SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },
  1961. X      { "Stunned",    SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },
  1962. X--- 252,266 ----
  1963. X      { "Max HP",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },    /*10*/
  1964. X      { "Power",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1965. X      { "Max Power",    SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1966. X!     { "Armor Class",    SV_VALUE, (Widget) 0,256, 0, FALSE, FALSE },
  1967. X      { "Level",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1968. X      { "Experience",    SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },    /*15*/
  1969. X      { "Alignment",    SV_VALUE, (Widget) 0, -2, 0, FALSE, FALSE },
  1970. X!     { "Time",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1971. X!     { "Score",        SV_VALUE, (Widget) 0, -1, 0, FALSE, FALSE },
  1972. X  
  1973. X!     { "",        SV_NAME,  (Widget) 0, -1, 0, FALSE, TRUE }, /* hunger*/
  1974. X!     { "Confused",    SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },    /*20*/
  1975. X      { "Sick",        SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },
  1976. X      { "Blind",        SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },
  1977. X      { "Stunned",    SV_NAME,  (Widget) 0,  0, 0, FALSE, TRUE },
  1978. X*** /tmp/da13090    Tue Jun  1 17:34:06 1993
  1979. X--- sys/winnt/Makefile.dat    Tue Apr  6 15:58:03 1993
  1980. X***************
  1981. X*** 1,4 ****
  1982. X! # SCCS Id: @(#)Makefile.dat  3.1   93/02/21
  1983. X  # Copyright (c) NetHack PC Development Team 1992,1993
  1984. X  # NetHack may be freely redistributed.  See license for details.
  1985. X  #
  1986. X--- 1,4 ----
  1987. X! # SCCS Id: @(#)Makefile.dat  3.1   93/04/02
  1988. X  # Copyright (c) NetHack PC Development Team 1992,1993
  1989. X  # NetHack may be freely redistributed.  See license for details.
  1990. X  #
  1991. X***************
  1992. X*** 5,12 ****
  1993. X  #       NT NetHack 3.1 DAT Makefile 
  1994. X  #    for MS NMAKE for Windows NT
  1995. X  #  
  1996. X! #    NT Version Tested:  October 1992 SDK pre-release
  1997. X! #                + December '92 compiler fix
  1998. X  #
  1999. X  #       For questions read the Install.nt file included with
  2000. X  #       the distribution.
  2001. X--- 5,12 ----
  2002. X  #       NT NetHack 3.1 DAT Makefile 
  2003. X  #    for MS NMAKE for Windows NT
  2004. X  #  
  2005. X! #    NT Version Tested:  March 1993 SDK pre-release
  2006. X! #
  2007. X  #
  2008. X  #       For questions read the Install.nt file included with
  2009. X  #       the distribution.
  2010. X*** /tmp/da13098    Tue Jun  1 17:34:08 1993
  2011. X--- sys/winnt/Makefile.src    Tue Apr  6 15:58:16 1993
  2012. X***************
  2013. X*** 1,12 ****
  2014. X! #       SCCS Id: @(#)Makefile.src       3.1     93/02/21
  2015. X  #       Copyright (c) NetHack PC Development Team 1993
  2016. X  #
  2017. X  #       NT NetHack 3.1 Src Makefile 
  2018. X  #    for MS NMAKE for Windows NT
  2019. X  #  
  2020. X! #    NT Version Tested:  October 1992 SDK pre-release
  2021. X! #                + December '92 compiler fix
  2022. X  #
  2023. X  #       For questions read the Install.nt file included with
  2024. X  #       the distribution.
  2025. X  #
  2026. X--- 1,12 ----
  2027. X! #       SCCS Id: @(#)Makefile.src       3.1     93/04/02
  2028. X  #       Copyright (c) NetHack PC Development Team 1993
  2029. X  #
  2030. X  #       NT NetHack 3.1 Src Makefile 
  2031. X  #    for MS NMAKE for Windows NT
  2032. X  #  
  2033. X! #    NT Version Tested:  March 1993 SDK pre-release
  2034. X  #
  2035. X+ #
  2036. X  #       For questions read the Install.nt file included with
  2037. X  #       the distribution.
  2038. X  #
  2039. X***************
  2040. X*** 24,32 ****
  2041. X  #  Set the gamedir according to your preference.  It must be present prior
  2042. X  #  to compilation.
  2043. X  
  2044. X! GAME    = nethack            # Game Name
  2045. X! GAMEDIR = c:\games\hackdir      # Game directory
  2046. X  
  2047. X  #
  2048. X  #  Source directories.    Makedefs hardcodes these, don't change them.
  2049. X  #
  2050. X--- 24,33 ----
  2051. X  #  Set the gamedir according to your preference.  It must be present prior
  2052. X  #  to compilation.
  2053. X  
  2054. X! GAME    = nethack               # Game Name
  2055. X! GAMEDIR = c:\games\nethack      # Game directory
  2056. X  
  2057. X+ 
  2058. X  #
  2059. X  #  Source directories.    Makedefs hardcodes these, don't change them.
  2060. X  #
  2061. X***************
  2062. X*** 47,60 ****
  2063. X  #
  2064. X  #  Uncomment the next two lines _ONLY_ if you do not want any
  2065. X  #  debug capability in the object files, or in the NetHack executable.
  2066. X  #cdebug =
  2067. X  #linkdebug =
  2068. X  
  2069. X  #
  2070. X! #  The default make target (so just typing 'nmake' is useful).
  2071. X! #
  2072. X  
  2073. X- default : $(GAMEFILE)
  2074. X  
  2075. X  ######################################################################
  2076. X  #
  2077. X--- 48,65 ----
  2078. X  #
  2079. X  #  Uncomment the next two lines _ONLY_ if you do not want any
  2080. X  #  debug capability in the object files, or in the NetHack executable.
  2081. X+ #  Leave them commented if you want debug capability.
  2082. X  #cdebug =
  2083. X  #linkdebug =
  2084. X  
  2085. X  #
  2086. X! #  To embed the nethack ICON into the .exe file, comment out 
  2087. X! #  the first line and uncomment the second line below.
  2088. X! #  Note that for this to work, you must have sucessfully uudecoded the 
  2089. X! #  file sys\winnt\nhico.uu into sys\winnt\nethack.ico (appr. 766 bytes).
  2090. X! RESFILE = 
  2091. X! #RESFILE = $(GAME).rbj
  2092. X  
  2093. X  
  2094. X  ######################################################################
  2095. X  #
  2096. X***************
  2097. X*** 67,73 ****
  2098. X--- 72,84 ----
  2099. X  #       This line should not be deleted.
  2100. X  
  2101. X  NTSUB = -DWIN32CON
  2102. X+ 
  2103. X  #
  2104. X+ #  The default make target (so just typing 'nmake' is useful).
  2105. X+ #
  2106. X+ default : $(GAMEFILE)
  2107. X+ 
  2108. X+ #
  2109. X  #  Make Rules.
  2110. X  #
  2111. X  
  2112. X***************
  2113. X*** 157,167 ****
  2114. X  install: install.tag
  2115. X  
  2116. X  install.tag:    $(GAMEFILE) $(DAT)\sp_lev.tag
  2117. X-     copy $(SYS)\termcap       $(GAMEDIR)
  2118. X      copy $(DAT)\*.?           $(GAMEDIR)
  2119. X      copy $(DAT)\*.dat         $(GAMEDIR)
  2120. X      copy $(DAT)\*.lev         $(GAMEDIR)
  2121. X!     copy $(SYS)\NetHack.cnf   $(GAMEDIR)
  2122. X      copy $(UTIL)\recover.exe  $(GAMEDIR)
  2123. X      del   $(GAMEDIR)\makefile
  2124. X      echo install done > install.tag
  2125. X--- 168,177 ----
  2126. X  install: install.tag
  2127. X  
  2128. X  install.tag:    $(GAMEFILE) $(DAT)\sp_lev.tag
  2129. X      copy $(DAT)\*.?           $(GAMEDIR)
  2130. X      copy $(DAT)\*.dat         $(GAMEDIR)
  2131. X      copy $(DAT)\*.lev         $(GAMEDIR)
  2132. X!     copy $(MSYS)\winnt.cnf    $(GAMEDIR)\NetHack.cnf
  2133. X      copy $(UTIL)\recover.exe  $(GAMEDIR)
  2134. X      del   $(GAMEDIR)\makefile
  2135. X      echo install done > install.tag
  2136. X***************
  2137. X*** 169,178 ****
  2138. X  #
  2139. X  #  The main target.
  2140. X  #
  2141. X! $(GAMEFILE) : $(GAME).res  $(UTIL)\utility.tag
  2142. X!     $(link) $(linkdebug) $(conflags) -out:$*.exe @$(GAME).res $(conlibs)
  2143. X  
  2144. X! $(GAME).res : $(ALLOBJ)
  2145. X      @echo $(VOBJ01) > $@
  2146. X      @echo $(VOBJ02) >> $@
  2147. X      @echo $(VOBJ03) >> $@
  2148. X--- 179,188 ----
  2149. X  #
  2150. X  #  The main target.
  2151. X  #
  2152. X! $(GAMEFILE) : $(GAME).lnk $(RESFILE) $(UTIL)\utility.tag
  2153. X!     $(link) $(linkdebug) $(conflags) -out:$*.exe $(RESFILE) @$(GAME).lnk $(conlibs)
  2154. X  
  2155. X! $(GAME).lnk : $(ALLOBJ)
  2156. X      @echo $(VOBJ01) > $@
  2157. X      @echo $(VOBJ02) >> $@
  2158. X      @echo $(VOBJ03) >> $@
  2159. X***************
  2160. X*** 198,204 ****
  2161. X--- 208,225 ----
  2162. X      @echo $(SOBJ) >> $@
  2163. X      @echo $(VVOBJ) >> $@
  2164. X  
  2165. X+ $(GAME).rbj : $(GAME).res
  2166. X+     cvtres -$(CPU) $(GAME).res -o $(GAME).rbj
  2167. X  
  2168. X+ $(GAME).res : $(GAME).rc 
  2169. X+     rc -r $(GAME).rc
  2170. X+ 
  2171. X+ $(GAME).rc : $(GAME)_.ico
  2172. X+     @echo $(GAME)Icon ICON $(GAME)_.ico >$@
  2173. X+ 
  2174. X+ $(GAME)_.ico : $(MSYS)\$(GAME).ico
  2175. X+     @copy $(MSYS)\$(GAME).ico $(GAME)_.ico
  2176. X+     
  2177. X  #
  2178. X  #  The following include files depend on makedefs to be created.
  2179. X  #
  2180. X***************
  2181. X*** 236,244 ****
  2182. X  getline.o : $(WIN)\getline.c
  2183. X      $(cc) $(cflags) $(NTSUB) -I$(INCL)  $(cvars) $(cdebug) -Fo$*.o $(WIN)\$*.c
  2184. X  
  2185. X- termcap.o : $(CONFIG_H) $(WIN)\termcap.c
  2186. X-     $(cc) $(cflags) $(NTSUB) -I$(INCL)  $(cvars) $(cdebug) -Fo$*.o $(WIN)\$*.c
  2187. X- 
  2188. X  topl.o : $(CONFIG_H) $(WIN)\topl.c
  2189. X      $(cc) $(cflags) $(NTSUB) -I$(INCL)  $(cvars) $(cdebug) -Fo$*.o $(WIN)\$*.c
  2190. X  
  2191. X--- 257,262 ----
  2192. X***************
  2193. X*** 245,250 ****
  2194. X--- 263,273 ----
  2195. X  wintty.o : $(CONFIG_H) $(WIN)\wintty.c
  2196. X      $(cc) $(cflags) $(NTSUB) -I$(INCL)  $(cvars) $(cdebug) -Fo$*.o $(WIN)\$*.c
  2197. X  
  2198. X+ # March '93 Compiler has bugs.  Routines needing work arounds.
  2199. X+ 
  2200. X+ attrib.o      : $(HACK_H)
  2201. X+     $(cc) $(cflags) -DWIN32_BUG $(NTSUB) -I$(INCL) $(cvars) $(cdebug) -Fo$*.o $*.c
  2202. X+ 
  2203. X  #
  2204. X  #  Housekeeping.
  2205. X  #
  2206. X***************
  2207. X*** 251,256 ****
  2208. X--- 274,284 ----
  2209. X  
  2210. X  clean :
  2211. X      -del *.o
  2212. X+     -if exist *.rc  del *.rc
  2213. X+     -if exist *.ico del *.ico
  2214. X+     -if exist *.res del *.res
  2215. X+     -if exist *.lnk del *.lnk
  2216. X+     -if exist *.rbj del *.rbj
  2217. X  
  2218. X  spotless : clean
  2219. X      -del $(INCL)\date.h
  2220. X***************
  2221. X*** 261,267 ****
  2222. X      -del $(UTIL)\makedefs.exe
  2223. X      -del $(UTIL)\lev_comp.exe
  2224. X      -del $(UTIL)\dgn_comp.exe
  2225. X!     -del $(UTIL)\*.res
  2226. X      -del $(UTIL)\*.def
  2227. X      -del $(UTIL)\*.map
  2228. X      -del $(DAT)\data
  2229. X--- 289,295 ----
  2230. X      -del $(UTIL)\makedefs.exe
  2231. X      -del $(UTIL)\lev_comp.exe
  2232. X      -del $(UTIL)\dgn_comp.exe
  2233. X!     -del $(UTIL)\*.lnk
  2234. X      -del $(UTIL)\*.def
  2235. X      -del $(UTIL)\*.map
  2236. X      -del $(DAT)\data
  2237. X***************
  2238. X*** 273,279 ****
  2239. X  alloc.o       : $(CONFIG_H)
  2240. X  apply.o       : $(HACK_H)
  2241. X  artifact.o    : $(HACK_H)       $(INCL)\artifact.h
  2242. X- attrib.o      : $(HACK_H)
  2243. X  bones.o       : $(HACK_H)
  2244. X  botl.o        : $(HACK_H)
  2245. X  cmd.o         : $(HACK_H)       $(INCL)\func_tab.h
  2246. X--- 301,306 ----
  2247. X*** /tmp/da13106    Tue Jun  1 17:34:11 1993
  2248. X--- sys/winnt/Makefile.utl    Tue Apr  6 15:57:59 1993
  2249. X***************
  2250. X*** 1,11 ****
  2251. X! #       SCCS Id: @(#)Makefile.utl               3.1     93/02/21
  2252. X  #       Copyright (c) NetHack PC Development Team 1993
  2253. X  #
  2254. X  #       NT NetHack 3.1 Utilities Makefile 
  2255. X  #    for MS NMAKE for Windows NT
  2256. X  #  
  2257. X! #    NT Version Tested:  October 1992 SDK pre-release
  2258. X! #                + December '92 compiler fix
  2259. X  #
  2260. X  #       For questions read the Install.nt file included with
  2261. X  #       the distribution.
  2262. X--- 1,11 ----
  2263. X! #       SCCS Id: @(#)Makefile.utl               3.1     93/04/02
  2264. X  #       Copyright (c) NetHack PC Development Team 1993
  2265. X  #
  2266. X  #       NT NetHack 3.1 Utilities Makefile 
  2267. X  #    for MS NMAKE for Windows NT
  2268. X  #  
  2269. X! #    NT Version Tested:  March 1993 SDK pre-release
  2270. X! #
  2271. X  #
  2272. X  #       For questions read the Install.nt file included with
  2273. X  #       the distribution.
  2274. END_OF_FILE
  2275. if test 55421 -ne `wc -c <'patches02q'`; then
  2276.     echo shar: \"'patches02q'\" unpacked with wrong size!
  2277. fi
  2278. # end of 'patches02q'
  2279. echo shar: End of archive 9 \(of 33\).
  2280. cp /dev/null ark9isdone
  2281. MISSING=""
  2282. 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 25 26 27 28 29 30 31 32 33 ; do
  2283.     if test ! -f ark${I}isdone ; then
  2284.     MISSING="${MISSING} ${I}"
  2285.     fi
  2286. done
  2287. if test "${MISSING}" = "" ; then
  2288.     echo You have unpacked all 33 archives.
  2289.     echo "Now execute ./patchit.sh"
  2290.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2291. else
  2292.     echo You still need to unpack the following archives:
  2293.     echo "        " ${MISSING}
  2294. fi
  2295. ##  End of shell archive.
  2296. exit 0
  2297.