From 648b1489a417ce96fbf8ed848c06d1eee9977a85 Mon Sep 17 00:00:00 2001 From: cohrs Date: Tue, 26 Aug 2003 15:11:58 +0000 Subject: [PATCH] X11 install Build and install the NetHack.ad file, and change the nethack.sh to append the HACKDIR to the XUSERFILESEARCHPATH. This means users do not have to do anything special to use the NetHack X11 resources, nor does it require teaching nethack where the X11 app-defaults directory is. The change also updates the X11 and linux doc files in a corresponding way. --- doc/fixes34.2 | 1 + sys/unix/Makefile.dat | 5 ++++- sys/unix/Makefile.top | 7 +++++-- sys/unix/README.linux | 9 +++++---- sys/unix/nethack.sh | 9 +++++++++ win/X11/Install.X11 | 12 ++++-------- 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/doc/fixes34.2 b/doc/fixes34.2 index 1af41fb61..1b9b3ecbb 100644 --- a/doc/fixes34.2 +++ b/doc/fixes34.2 @@ -176,4 +176,5 @@ win32tty: keystroke handlers can be dynamically loaded to assist in resolving internationalization issues win32tty: add Ray Chason's code for international keyboard handling Solaris (and other SystemV variants): TIMED_DELAY support +X11: NetHack.ad is now installed and used w/o user intervention diff --git a/sys/unix/Makefile.dat b/sys/unix/Makefile.dat index 9c79b320d..75a5aa82d 100644 --- a/sys/unix/Makefile.dat +++ b/sys/unix/Makefile.dat @@ -41,6 +41,9 @@ nhtiles.bmp: ../util/tile2bmp ../win/share/monsters.txt ../win/share/objects.txt ../win/share/other.txt ../util/tile2bmp $@ +NetHack.ad: ../win/X11/NetHack.ad + cp ../win/X11/NetHack.ad NetHack.ad + pet_mark.xbm: ../win/X11/pet_mark.xbm cp ../win/X11/pet_mark.xbm pet_mark.xbm @@ -138,4 +141,4 @@ dungeon: dungeon.def ../util/makedefs ../util/dgn_comp spotless: -rm -f spec_levs quest_levs *.lev $(VARDAT) dungeon dungeon.pdf -rm -f nhdat x11tiles beostiles pet_mark.xbm rip.xpm mapbg.xpm - -rm -f rip.img GEM_RSC.RSC title.img nh16.img + -rm -f rip.img GEM_RSC.RSC title.img nh16.img NetHack.ad diff --git a/sys/unix/Makefile.top b/sys/unix/Makefile.top index a9889a8d1..2f11c35ea 100644 --- a/sys/unix/Makefile.top +++ b/sys/unix/Makefile.top @@ -41,8 +41,8 @@ SHELLDIR = $(PREFIX)/games # per discussion in Install.X11 and Install.Qt VARDATND = -# VARDATND = x11tiles pet_mark.xbm -# VARDATND = x11tiles pet_mark.xbm rip.xpm +# VARDATND = x11tiles NetHack.ad pet_mark.xbm +# VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm # for Atari/Gem # VARDATND = nh16.img title.img GEM_RSC.RSC rip.img # for BeOS @@ -135,6 +135,9 @@ beostiles: $(GAME) ( cd util ; $(MAKE) tile2beos ) ( cd dat ; $(MAKE) beostiles ) +NetHack.ad: $(GAME) + ( cd dat ; $(MAKE) NetHack.ad ) + pet_mark.xbm: ( cd dat ; $(MAKE) pet_mark.xbm ) diff --git a/sys/unix/README.linux b/sys/unix/README.linux index 935a5bbc0..ccdfaf07d 100644 --- a/sys/unix/README.linux +++ b/sys/unix/README.linux @@ -38,10 +38,11 @@ it to your home directory as .nethackrc and modifying it to your liking. If you are running X11 copy the nh10.pcf and ibm.pcf font files from /usr/games/lib/nethackdir to a X11 fonts directory (such as /usr/X11/lib/X11/fonts/misc) and run "mkfontdir", then restart X -windows to load them. Also consider copying NetHack.ad to -/usr/X11/lib/X11/app-defaults/NetHack or adding its contents to your -.Xdefaults or .Xresources. - +windows to load them. If you prefer to use the graphical tiles, +add the following to your .Xdefaults or .Xresources file: + NetHack.tile_file: x11tiles +You may need to run "xrdb -merge $HOME/.Xdefaults" (or .Xresources) after +doing this. The official Linux binary is set up to run setgid games, which allows multiple users on your system to play the game and prevents cheating by diff --git a/sys/unix/nethack.sh b/sys/unix/nethack.sh index 3491e8d29..600e1dacd 100644 --- a/sys/unix/nethack.sh +++ b/sys/unix/nethack.sh @@ -6,6 +6,15 @@ export HACKDIR HACK=$HACKDIR/nethack MAXNROFPLAYERS=4 +# Since Nethack.ad is installed in HACKDIR, add it to XUSERFILESEARCHPATH +case "x$XUSERFILESEARCHPATH" in +x) XUSERFILESEARCHPATH="$HACKDIR/%N.ad" + ;; +*) XUSERFILESEARCHPATH="$XUSERFILESEARCHPATH:$HACKDIR/%N.ad" + ;; +esac +export XUSERFILESEARCHPATH + # see if we can find the full path name of PAGER, so help files work properly # assume that if someone sets up a special variable (HACKPAGER) for NetHack, # it will already be in a form acceptable to NetHack diff --git a/win/X11/Install.X11 b/win/X11/Install.X11 index 243ee3a98..b4b7a43b5 100644 --- a/win/X11/Install.X11 +++ b/win/X11/Install.X11 @@ -109,14 +109,10 @@ prepend an appropriate -I parameter to CFLAGS and a find the include and library files for X11. -Finally, you should also install the NetHack.ad file as NetHack in the -normal X11 applications defaults directory. Alternatively, each person may -append the contents of this file to their .Xdefaults or .Xresources file, -depending on how your system is configured and the version of X11 you are -using. A second alternative is copy NetHack.ad to NetHack in GAMEDIR -(from the top Makefile) and add a line to nethack.sh specifying this -additional applications defaults directory: - XAPPLRESDIR=$HACKDIR; export XAPPLRESDIR +Finally, to ensure NetHack's windows look the way they were intended to +look, make sure the top Makefile VARDATND also contains NetHack.ad. If it +does, running nethack will automatically take the appropriate steps to +cause this file to be used to initialize NetHack's X11 resources. Three icon suggestions to the window manager are supported: nh72, nh56, -- 2.40.0