Commit Graph

4034 Commits

Author SHA1 Message Date
keni
1d219b4e1b SYSCF bits
(This covers some thing that Pat found and some things I found while working
on those.)
Unscramble duplicate use of GREPPATH and GDBPATH symbols.
Add some more info to config.h.
Make missing SYSCF_FILE a fatal error.
Make a parse error in SYSCF_FILE a fatal error.
Rename PANICTRACE_GLIBC (et al) to PANICTRACE_LIBC (et al) since FreeBSD
 and Mac OS X (at least) also implement the needed API.
Allow SYSCF_FILE to be unreadable by the user (for setgid installs).
If SYSCF, do NOT fall back to the compiled in WIZARD account.
Put WIZARD into sysopt and remove special cases in authorize_wizard_mode().
2012-01-27 20:15:31 +00:00
nethack.rankin
a871ad06e9 outrip() updating (trunk only)
Part II of the bones tracking patch.  Change umpteen different outrip()
routines to handle its new time_t argument, and use formatkiller() instead
of directly accessing killer.{format,name} and killed_by_prefix[].  The
latter is now static within formatkiller().

     The many sys/* and win/* changes are untested....
2012-01-24 04:26:33 +00:00
nethack.rankin
9721470635 bones tracking (trunk only)
[See cvs log for include/rm.h or doc/window.doc for more complete description.]

Attach hero info, death reason, and date+time to a level that's being saved
as bones.  Read such data back when loading a bones file, then treat it as
part of that level for the rest of the game.  Dying on a loaded bones file
will chain the new hero+death+date to previous one(s) if new bones get saved.

outrip() now takes an extra argument of type time_t, and interface-specific
implementations of this routine need to be updated to handle that.
2012-01-23 10:45:31 +00:00
nethack.rankin
b88c51deae bones tracking (trunk only)
Quite a long time ago, the developer/administrator of the 'hearse'
bones respository asked to have bones files augmented so that they could
be correlated with logfile entries.  He was forced to approximate it by
comparing file date+time with logfile date, which won't work well if there
are multiple deaths at roughly the same time, or perhaps even on the same
day.  This adds character name plus role, race, gender, alignment, the
cause of death, and date plus time of death to the bones file when it is
saved, and reads that data in when a bones file is loaded, then retains
it as part of that level for the remainder of the game.  Dying on a level
that was loaded from bones will chain the new dead hero info to whatever
was there from the previous one(s).  It's written as fixed length strings
padded with spaces before writing the map and its messy details, making
it easy to spot with a simple file browsing tool rather than requiring
something which can interpret nethack level files.  This may need to be
tweaked if players start shelling out of nethack to see whether the
checkpoint file for a newly entered level contains bones info, but at the
moment I'm not going to worry about that.

     TODO:  I wanted the bones and topten date to match, so am obtaining
the current date+time in done() and passing it to both of those and also
to outrip().  Hence the latter now has an additional argument.  So far only
genl_outrip() and hup_outrip() in src and the three outrips in win/chain
have been taught about that; interfaces that supply their own outrip()
need to be updated and probably won't compile right now.  Also, code for
formatting the cause of death has been moved from topten() into a separate
routine so that the new bones code can share it.  genl_outrip() now calls
it too; the various other outrip() routines should be changed to call it
instead of continuing to duplicate that core code.  (I probably should
have made topten.c's killed_by_prefix[] be static in order to force that,
but haven't done so.)

     TODO too:  there ought to be some way of viewing the data for a loaded
bones file from within nethack.  I'll probably add something to the dungeon
overview code to treat it as an implicit annotation, as least in wizard mode.
Showing it in normal play once a level is sufficiently discovered would be
useful, but I'm not sure what criteria should control that.  Neither ghost
nor grave is guaranteed to be present, particularly for levels that were
saved as bones, loaded into a subsequent game, then became new bones when
the second hero died there, which can occur an arbitrary number of times.
2012-01-23 10:41:57 +00:00
nethack.rankin
d1ffc0eaa3 unixtty lint (trunk only)
gcc reports "comparison between signed and unsigned".  One header file
uses unsigned long for tty flags, another uses [signed] short.  'unsigned'
seems like the best compromise, but this might accidentally introduce lint
for some other configuration.
2012-01-23 07:11:09 +00:00
nethack.rankin
fa80181ed0 lint bit, shadowed 'restoring' (trunk only) 2012-01-23 06:29:37 +00:00
nethack.allison
8377042fb8 msdos build (trunk only) 2012-01-22 06:33:47 +00:00
nethack.allison
b5ca45599c msdos build (trunk only) 2012-01-22 06:27:09 +00:00
nethack.allison
5163e6dc20 remove line of unreachable code (trunk only) 2012-01-21 12:39:03 +00:00
nethack.rankin
756bd2230f fix date.h/patchlevel.h removal typo 2012-01-21 09:00:37 +00:00
nethack.allison
ef914be827 sync MS Makefile dependencies
sync some Makefile dependencies with sys/unix/Makefile.src
2012-01-20 13:05:21 +00:00
nethack.rankin
7db7b8de73 date.h/patchlevel.h dependencies (trunk only)
Remove date.h and patchlevel.h from win/tty/wintty.c, win/X11/winX.c,
and sys/share/pcmain.c (caveat: the latter two are untested) so that they
don't get recompiled every time any other source file changes and triggers
creation of a new date.h.  Only version.c needs to be recompiled in that
situation.  Also, Makefile.src was missing a reference to botl.h.
2012-01-20 03:41:33 +00:00
keni
cbe862e162 gcc invocation cleanup (mac)
Move the compiler flags out of CC and into CFLAGS.  Split off
-Wunreachable-code, comment it out, and explain why.  Fix typo.
2012-01-18 22:32:24 +00:00
nethack.rankin
84c9b09440 save and restore lint cleanup (trunk only)
Fix a couple of signed vs unsigned and unused paramater warnings
that pointed to actual bugs.  uid values were being handled as int, even
though "modern" systems use type uid_t which could be bigger and is almost
certainly unsigned.  There haven't been any reports of nethack falsely
claiming that the wrong user is trying to restore, so in practice this
hasn't mattered, but switch from int to unsigned long to make the chance
of problems be even smaller.

     The code to save message history was ignoring the 'mode' argument so
would have attepted to write even when asked to free memory instead.  It
isn't currently called by freedynamicdata() so the problem was theoretical
rather than real.

     The 'UNUSED' macro is inadequate to handle parameters which are used
by some conditional configurations and unused by others, so there are
still several warnings about unused parameters from save.c and restore.c.
2012-01-18 02:36:50 +00:00
nethack.rankin
c0743f478a dlb capacity (trunk only)
From the newsgroup:  if someone adds too many new special levels, dlb
creation during install will give a warning but still exit with success,
and the subsequent installation won't know that the excess files need to be
placed in the playground separately.  The result is that some files will
be missing when nethack tries to access them.  The newsgroup thread states
that slash'em increased dlb's default limit of 200 files to 300, and the
unnethack variant increased it to 250 and also changed the overflow message
into an error that causes 'make' to quit.  (The thread was initiated by
someone working on his own, not affiliated with either variant, who asked
for help figuring out why nethack couldn't find files at the end of the
alphabet.  My answer didn't help much; I thought he was working with
separate files rather than with a DLB container.)

     I started to go with the too-many-files-is-an-error fix, but instead
went the GNU route ("no arbitrary limits") and made the number of allowed
files become dynamic.  It starts at 200 and expands by increments of 40
when necessary.
2012-01-16 03:56:08 +00:00
nethack.allison
bf106e38f2 Identify type of executable in Windows
For Windows, this just uses the RUNTIME_PORT_ID hook that was already in the code
to identify which executable you are running

Mike
2012-01-15 19:11:41 +00:00
nethack.allison
ead5101e0a More Microsoft Visual Studio 2010 Express compiler build
More updates to support the latest freely downloadable Microsoft compiler.
2012-01-15 17:43:54 +00:00
nethack.rankin
141653625d rumors & oracles & data.base vs "%lx" format (trunk only)
For text data processed by makedefs at install time, change all
printf and scanf calls that use %lx format to deal with unsigned long
variables, replacing the makedefs hack of a few days ago.  It's not as
clean as I would have liked (quite a few casts), because the values
involved are derived from ftell and/or passed to fseek, which deal in
signed longs.  But it clears up a few format check warnings by gcc in
rumors.c and pager.c in addition to the previous one in makedefs.c and
uses the right data type even in the places where no warning was issued.
2012-01-15 09:27:06 +00:00
nethack.rankin
09efc215a8 update Unix Makefile.src (trunk only)
Teach ``make depend'' about the new win/chain code so that the build
rules for that aren't blown away, and then run make depend to get things
up to date.  I think hack.h/$(HACK_H) missing botl.h and pcmain.o missing
date.h were the only things significant that turned up.

     The comment for CSOURCES says it should have all sources, but the
value had $(SYSSRC) rather than $(SYSCSRC).  I've taken the comment at its
word and inserted the missing 'C'; I wonder whether that'll break anything.
Does anybody use ``make tags'' these days?
2012-01-13 03:31:39 +00:00
keni
f5fa250691 drop extra includes
Remove includes already pulled in by hack.h
2012-01-12 15:08:29 +00:00
nethack.rankin
ac1707b5e6 lint bit: protects(artifact.c) (trunk only)
Rename 'is_worn' argument; that's also the name of a function.
2012-01-12 09:51:05 +00:00
nethack.rankin
eec34e4144 supress lev_main.c diagnostic (trunk only)
gcc warned about comparing signed with unsigned for one particular
write() that used an expression for the size argument, and there was already
conditional code to try to handle it for a couple of other compilers.  But
this simpler fix should handle it for everybody.
2012-01-12 04:48:12 +00:00
nethack.rankin
5506be3b91 suppress makedefs.c diagnostic (trunk only)
gcc doesn't complain about using %lx to write out a signed long, but
it does complain about using it to read into a signed long.  Technically
it's right about the latter, so fix this properly rather than just suppress
the message with a cast.
2012-01-12 04:01:08 +00:00
keni
af0201b063 tid commit just to test postcommit.pl 2012-01-11 19:54:46 +00:00
keni
b9f8ca44aa test postcommit.pl 1.91 & mac build tid
Make postcommit try to recognize a directory commit operation.
Use /usr/bin/true instead of touch for a dummy chown/chgrp in Mac OS X.
2012-01-11 19:47:33 +00:00
keni
7f6ee2f759 WINCHAIN - a framework allowing multiple processors between core and winport
This is the code I built trying to figure out the large window size issue.
It completely compiles out if not needed (see -DWINCHAIN in hints/macos10.7)
and except for one call during setup has zero overhead if compiled in and
not used.  See window.doc for more info.

Defs for UNUSED parms.  I know this has been controversial, so use is isolated
to the chain code and windows.c (where it shouldn't be intrusive and saves about
50 warnings).

Hints file for 10.7, but the build process still needs to be migrated from
the branch.
2012-01-11 18:23:35 +00:00
nethack.allison
586e2cb67e Suppress an x64 build warning (trunk only) 2012-01-11 01:53:44 +00:00
nethack.allison
593181421d More clean up of the Windows x64 build (trunk only) 2012-01-11 01:45:02 +00:00
nethack.allison
783413bb57 Start trying to clean up the Windows x64 build (trunk only) 2012-01-11 01:15:37 +00:00
keni
b97d53fb30 cleanup: outdated SCCS lines
Pat noted that I neglected to drop the SCCS lines on the files I've been
committing, so clean up those and any others I could find where the SCCS
line date is out of date.
2012-01-10 17:47:45 +00:00
nethack.rankin
369b1031fd fix #H2559+2564 - using 'a' command to discover potion of oil (trunk only)
From a bug report, if you used the apply command while
not carrying anything applicable except for unknown potion, you would get
"you don't have anything to apply" if that potion wasn't oil but an
inventory selection prompt (with '*' as the default since you wouldn't
have anything considered to be a likely candidate) if that potion was oil,
giving away information.

     This fix makes carrying any unknown potion yield the inventory
selection result, unless oil is already discovered and hero can see that
the unknown potion isn't oil.
2012-01-10 08:50:19 +00:00
keni
92b15c5f8a another shot at H2344 (large window)
Conditional on H2344_BROKEN which can be disabled at the top of the file if
necessary.  This appears to handle all the cases I was able to reproduce from
Pat's list, with the caveat that msg_window=f fails on very wide windows on
Mac OSX Lion with the default terminal emulation.  When the emulation is set
to ANSI, it works (the failure mode is the output from a simple putchar() loop
across the contents of history called up from ^P wraps at about the middle
of the window).
2012-01-10 02:33:36 +00:00
keni
c119e8c3d9 add param to ini winsys routines
Provide a mechanism for cleanly moving between tentative window system
selections during startup.  Now, before a second (or later) system is selected,
the first will be notified that it is losing control.  See window.doc.
2012-01-10 01:39:31 +00:00
keni
e442242417 sanity check for dlb_fopen
Fail if dlb_fopen is called with a non-read mode.
2012-01-09 22:42:48 +00:00
nethack.rankin
1563a3e0ec drain life vs drain resisting objects (trunk only)
From the newsgroup:  casting spell of drain life at Stormbringer
(or Excalibur or Staff of Aesculapius) would reduce its enchantment just
like any other weapon.  Drain resistance should protect against that even
when not actively wielded.
2012-01-08 01:26:35 +00:00
keni
e3648c2adc doc tid (mainly postcommit.pl test)
Reference the new install instructions from the current install instructions.
2012-01-08 01:11:03 +00:00
nethack.allison
93ee252e87 More MS Visual Studio 2010 Express stuff 2012-01-07 22:57:39 +00:00
keni
52aa3efcce last bunch - pline warnings while testing postcommit.pl 2012-01-04 18:52:36 +00:00
keni
f95549512a another pile on the trunk 2012-01-04 18:14:41 +00:00
keni
e3856eead3 back to trunk: potion.c 2012-01-04 18:05:21 +00:00
keni
01a44fead4 postcommit.pl 1.84 - first branch info test: polyself.c (on the trunk) 2012-01-03 19:11:34 +00:00
nethack.allison
c7bdc50a2a New Year - 2012 2012-01-02 14:40:08 +00:00
keni
f7805b65ae postcommit.pl 1.83: pray.c
(Getting close to the end.  1.83 cleans up the code and updates the bugs list.)
2012-01-01 17:35:48 +00:00
keni
21f9be37a7 worked once, let's press our luck: botl.c invent.c mkobj.c 2011-12-31 00:24:26 +00:00
keni
86e9b65d20 again, looking for that failure condition: pager.c pickup.c 2011-12-30 23:58:48 +00:00
keni
623119a4b6 postcommit.pl 1.82: mthrowu.c music.c 2011-12-30 23:47:06 +00:00
keni
178f66dbe4 now we need one of those temporary failures so we can see if recovery works,
and that's a crapshoot: mcastu.c mhitu.c
2011-12-30 23:14:58 +00:00
keni
6520bbdca9 first try tonight: lock.c makemon.c 2011-12-30 23:10:37 +00:00
keni
404aac46c1 last try for tonight: engrave.c and hack.c 2011-12-30 04:03:27 +00:00
keni
30193b9364 new hack: and we try dungeon.c and eat.c 2011-12-30 03:50:15 +00:00