Commit Graph

6176 Commits

Author SHA1 Message Date
Jean-Christophe Collet
9558f2d9d8 Fix #H4014: still crashing on MacOS 10.11 2015-12-11 17:02:28 +01:00
PatR
3db5f106df fix #H4039 - symset:default
Options parsing didn't support "default" (shown by the 'O' command)
or "Default symbols" (menu entry for choosing a symbol set via the
'O' command.  Symbol handling is somewhat confusing, but this seems to
do the trick.  They can't be truncated, but they're case-insensitive,
and "Default" and "symbols" can be separated by dash or underscore as
well as space, or run-together with no separator.
2015-12-11 02:36:56 -08:00
PatR
ebdfafb42d sys/vms/*.c - mostly reformatting
I'm not sure whether basic formatting cleanup belongs in 3.6.1, but
there are also a couple of strings that got split and require the
implicit concatenation of adjacent string literals introduced with
C89/C90.  The code itself compiles with pre-ANSI compilers, or at
least used to--most of it was developed with one....

Much of it is tabs in comments.  But there was one substantive item:
an obsolete reference to "use 'Q' to Quit" after however many years....
2015-12-10 18:42:27 -08:00
PatR
ef5b37a03a fix #H4035 - msg when wand zapped by mon explodes
Message given when you see a cursed wand explode while being zapped
by a monster got suppressed if hero was deaf, even though there's no
reference to sound in that message.  Change it to ignore deafness;
also, change the alternate message when not visible (which uses
You_hear so already gets suppressed when deaf without caller worrying
about it) use "nearby" or "in the distance" with same criteria as
hearing a wand being zapped, instead of always "in the distance".

I also changed the near/far criteria:  threshold to be considered
"far" shrinks from 9 steps to 5 when there's no direct line of sight.
2015-12-10 18:11:12 -08:00
nhmall
6e6f446526 Merge branch 'NetHack-3.6.0' 2015-12-10 19:18:31 -05:00
nhmall
1b0fb561d4 revert fixes36.0 2015-12-10 19:10:26 -05:00
nhmall
a0910d8f4e Merge branch 'NetHack-3.6.0'
Conflicts:
	doc/fixes36.1

	- resolved
2015-12-10 13:13:23 -05:00
nhmall
ec94b94aff roll back doc/fixes36.0 to released version 2015-12-10 10:55:06 -05:00
nhmall
367e92d642 reset fixes36.0 2015-12-10 10:54:00 -05:00
nhmall
375a2c28f1 fixes updates for win32gui
Changes to be committed:
	modified:   doc/fixes36.0
	modified:   doc/fixes36.1
	modified:   win/win32/mhsplash.c
	modified:   win/win32/mswproc.c
2015-12-10 07:51:33 -05:00
PatR
cee9426694 fix #H4038 - distant name vs Eyes of the Overworld
distant_name() temporarily blinded the hero before calling xname() or
doname() in order to prevent the object being formatted from having
its dknown flag set.  The Eyes of the Overworld override blindness, so
that bit got set for heros wearing them regardless of intention.  This
switches to a file-scope global instead of blindness as the way that
distant_name() tells xname() not to set dknown.

This bug has been present ever since the Eyes were added (3.3.0?).
2015-12-10 01:34:09 -08:00
PatR
c14336fee2 fruit enlightenment
Move the 'if (wizard) { /* give feedback for named fruit */ }' code
in ^X/enlightenment into an #if DEBUG block, and expand the if (wizard)
predicate with '&& explicitdebug("fruit")' to require that 'fruit' be in
DEBUGFILES.  So, build with DEBUG enabled and run via
 |% DEBUGFILES='fruit' nethack
to get it back....

This isn't actually a bug fix and it isn't necessary for 3.6.1, but I
got tired of seeing ^X and end-of-game disclosure of attributes end with
three lines about fruit when I'm not doing anything with named fruit.
2015-12-10 00:36:01 -08:00
Pasi Kallinen
f4a6ccf3f0 Update sysconf MAXPLAYERS docs a bit 2015-12-10 10:14:24 +02:00
PatR
de4e4bb601 doc/fixes36.1 - get it started... 2015-12-10 00:06:52 -08:00
keni
32edfc1c7b add external links section 2015-12-09 16:14:51 -05:00
Pasi Kallinen
43550bee53 Allow unlimited number of players
This is important for public servers.  Setting the MAXPLAYERS
sysconf value to 0 (or commenting it out) constructs the lock
files with the player UID and player name, so each player may
have one game at a time.
2015-12-09 22:27:26 +02:00
Pasi Kallinen
ea2f3225cc Fix history stating 3.5 Amiga and Atari ports existed 2015-12-09 17:44:15 +02:00
PatR
3ce4fe4180 fix #H4026 - silly plural bug
When a stack of corpses gets zapped by undead turning, the message was
"The <foo> corpses glows iridescently."  Change it to "One of the <foo>
corpses glows iridescently." since only one of the stack gets revived.
2015-12-09 05:56:40 -08:00
nhmall
155cd67053 Merge branch 'NetHack-3.6.0'
Conflicts:
	sys/share/lev_lex.c

 Changes to be committed:
	modified:   doc/nethack.6
	modified:   doc/nethack.txt
	modified:   doc/recover.6
	modified:   doc/recover.txt
	modified:   src/read.c
	modified:   sys/share/dgn_lex.c
	modified:   sys/share/lev_lex.c
	modified:   sys/unix/Makefile.top
2015-12-09 06:28:23 -05:00
PatR
a35c3e184c fix #H3994 - cursed genocide is inconsistent
After reading a cursed scroll of genocide, explicitly choosing "none"
when asked to pick what type of monster to wipe out, you get "sent in
some <rndmonst>".  But picking nothing (or something invalid) 5 times
gave "that's enough tries" without sending in random monsters.  Make
the time-to-give-up behavior be the same as the don't-want-to behavior.

Also, treat picking ESC the same as "none", like blessed genocide does.
2015-12-08 23:12:28 -08:00
PatR
bb72860ce2 fix #H4011 - sys/unix/Makefile.top
Some commented make variables for X11 misspelled 'pilemark.xbm' with
bad '.xbm' suffix.

'symbols' was handled strangely, but it still should have been working
during playground installation.  This removes the strangeness but I have
no idea whether it solves #H4015 ('unable to access "symbols" file' for
the Mac OSX binary).
2015-12-08 16:39:39 -08:00
PatR
7ac64532a9 man page updates
Update the man pages and generated text copies for nethack and recover.
I haven't looked at the other four (dlb, makedefs, dgn_comp, lev_comp).

recover's page referred to INSURANCE as being conditional, which is no
longer the case.  nethack's page was missing a bunch of files to be
found in the playground and also a couple of environment variables.
I haven't read through the text of the page to try to see whether other
updates are warranted.

The generated text is wider than the previous copy (one or two space
right margin instead of 5 or so).  I just used 'make nethack.txt' and
'make recover.txt' so don't know why that changed.  (The older, wider
margin looks better, so if anyone knows how to fix this, please do.
And there's got to be a better way to force a blank line inside a
table than my <space><tab> hack.)
2015-12-08 15:15:00 -08:00
PatR
48f1c6711e update sys/share/{dgn,lev}_lex.c
The HP C compiler for VMS issued a pair of diagnostics for both *_lex.c
files, about an expression of the form (unsigned_var <= 0) maybe not
being what was really intended, and it was right.  Changing that to
'< 1' would have suppressed the diagnostic but left the bug, which was
in code that performed a subtraction and then checked for a negative
result.  It worked in older flex versions when the variables were
signed, but got broken when they were changed to unsigned (no doubt in
respose to gcc complaining about comparing signed and unsigned in some
other spot where one of them was used).

The bug is in flex's original skeleton, so was inherited by our new
custom skeleton.  I've fixed it in the custom skeleton, which means
that sys/share/*_lex.c became out of date even though util/*_comp.l
remain unchanged.
2015-12-08 14:52:01 -08:00
nhmall
932ab127fe Merge branch 'NetHack-3.6.0' 2015-12-08 17:41:46 -05:00
nhmall
7f2f15c702 dat/data.base update from master
Changes to be committed:
	modified:   dat/data.base
2015-12-08 17:39:46 -05:00
PatR
d984cf456e doclassdisco() - missing start_menu() call
Apparently tty doesn't mind if you use add_menu() without preceding
it with start_menu(), because doclassdisco() (the new with 3.6.0 '`'
command) works for me with all four settings of menustyle.
2015-12-08 07:21:48 -08:00
Sean Hunt
23b6a04ad5 Correct citation of Adventure. 2015-12-08 00:01:41 -05:00
nhmall
692f15c43d Merge branch 'NetHack-3.6.0' 2015-12-07 07:10:34 -05:00
nhmall
585e9f1b35 fix a 'program in disorder' in tt_oname
Changes to be committed:
	modified:   win/win32/winhack.c

sys_early_init was never called for win32 GUI. That was causing "rnd(0) -
program in disorder" in tt_oname.
2015-12-07 06:48:05 -05:00
nhmall
b5144a84ca Merge branch 'NetHack-3.6.0' 2015-12-06 20:44:42 -05:00
nhmall
a1af46ab7c another Files update
Might as well add Keni's change since Pat added a VMS change.
2015-12-06 20:38:02 -05:00
nhmall
7a43346b10 Merge branch 'NetHack-3.6.0' 2015-12-06 20:01:27 -05:00
PatR
544315eaac add missing sys/vms/sysconf
SYSCF is enabled by default, but nethack won't run without the required
sysconf file.  sys/vms/install.com expects to find a template one in
sys/vms/sysconf so create that.

Since the tarball will need repackaging, fix a comment typo (dyslexic
spelling of "nymph") in sys/unix/sysconf.  Also, move DEBUGFILES to the
bottom so that more useful entries move up.  And expand the comment for
the PANICTRACE options.
2015-12-06 16:47:20 -08:00
nhmall
531315e1e5 pull release changes into master
Changes to be committed:
	modified:   sys/share/lev_lex.c
2015-12-06 14:49:49 -05:00
nhmall
67cd9ca926 Merge branch 'NetHack-3.6.0'
Conflicts:
	sys/share/dgn_lex.c
	sys/share/dgn_yacc.c
	sys/share/lev_lex.c
	sys/share/lev_yacc.c
	sys/share/pcmain.c
	win/win32/mswproc.c

 Changes to be committed:
	modified:   Files
	modified:   README
	modified:   include/global.h
	modified:   include/lint.h
	modified:   include/patchlevel.h
	modified:   include/sys.h
	modified:   include/system.h
	modified:   src/attrib.c
	modified:   src/bones.c
	modified:   src/dbridge.c
	modified:   src/dig.c
	modified:   src/eat.c
	modified:   src/files.c
	modified:   src/makemon.c
	modified:   src/mkmaze.c
	modified:   src/mon.c
	modified:   src/sp_lev.c
	modified:   src/version.c
	modified:   sys/share/dgn_lex.c
	modified:   sys/share/dgn_yacc.c
	modified:   sys/share/lev_lex.c
	modified:   sys/share/lev_yacc.c
	modified:   sys/share/pcmain.c
	modified:   sys/unix/Makefile.utl
	modified:   util/dgn_comp.l
	modified:   util/lev_comp.l
	modified:   win/win32/mswproc.c
2015-12-06 14:47:41 -05:00
nhmall
7079c0a3a5 mark some as untested
Changes to be committed:
	modified:   Files

Also: vms was already listed as "untested in 3.6.0", but should it be?
2015-12-06 13:06:59 -05:00
nhmall
d1a15731bd update Files to reflect tarball
Changes to be committed:
	modified:   Files
2015-12-06 12:49:59 -05:00
nhmall
71c5bab0c3 Update Guidebook dates to reflect release
Changes to be committed:
	modified:   doc/Guidebook.mn
	modified:   doc/Guidebook.tex
	modified:   doc/Guidebook.txt
2015-12-06 11:50:39 -05:00
nhmall
3c66b9b3bf update date on Guidebook
Changes to be committed:
	modified:   doc/Guidebook.mn
	modified:   doc/Guidebook.tex
	modified:   doc/Guidebook.txt
2015-12-06 11:47:50 -05:00
PatR
996c0a3741 unix/Makefile.utl: tweak lex/yacc postprocessing 2015-12-05 23:26:41 -08:00
PatR
c964ae023b sys/share/???_lex.c
Generated with flex 2.6.0 and a new custom skeleton for that version
(which almost certainly won't work with any older or newer version of
flex, but that limitation has no effect on the usefulness of the
generated scanner code).

Function definitions are oldstyle:
  int foo(bar)
    char *bar;
  {...}
rather than ANSI, like nethack's core code.  Advance declarations use
FDECL for prototypes, so should also fit nethack, although the usage
'FDECL(, (arglist))' makes me feel a bit uneasy.  gcc doesn't mind the
omitted first argument but other compilers might not like it.

The system headers (stdlib.h and a few others) that flex has been
insisting on including are gone (with this skeleton).  It starts out
including "config.h" and that header has the responsibility for any
definitions and declarations necessary.  That shouldn't be a big deal
since config.h -> XXXconf.h -> system.h is what we're already relying
on for everything else, but it does need testing for any configuration
that uses sys/share/{dgn,lev}_{lex,yacc}.c.

I'll be checking the skeleton into the NHinternals repository after
adding some documentation, but I'm wondering whether it should really
become part of the source distribution.
2015-12-05 23:02:35 -08:00
PatR
ea6c2a49fe util/???_comp.l
A couple of minor changes, perparatory to regenerating sys/share/???_lex.c
with flex-latest plus new custom skeleton for same.
2015-12-05 22:59:56 -08:00
nhmall
c1a5895f3a Release prep step - set BETA_INFO to empty string
Changes to be committed:
	modified:   src/version.c
2015-12-05 10:09:28 -05:00
Pasi Kallinen
80f51d1527 Revert "Fix SYSCF complaints when compiling without BETA"
This reverts commit e5b112f993.
2015-12-05 10:22:17 +02:00
Pasi Kallinen
e5b112f993 Fix SYSCF complaints when compiling without BETA 2015-12-05 10:10:49 +02:00
PatR
9f6f3f5180 PANICTRACE option parsing
Fix the situation where disabling PANICTRACE, which happened implicitly
when BETA  got disabled, caused SYSCF option processing to complain and
quit if the 'sysconf' file contained any PANICTRACE settings.

Now accept all the PANICTRACE options (assuming SYSCF is defined) even
if PANICTRACE is not defined.  Their values are recorded in the 'sysopt'
struct, but only validated when the appropriate macros (PANICTRACE,
PANICTRACE_LIB) are defined.
2015-12-04 22:18:17 -08:00
PatR
841662ff32 "Bad option line" formatting
Change
  |Bad option line:  "foo
  |"
to
  |Bad option line: "foo"
by stripping away the input line's newline before processing it.

(This doesn't address the PANICTRACE options processing issue.)
2015-12-04 18:52:51 -08:00
nhmall
8d2f35094f Merge branch 'NetHack-3.6.0' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.0 2015-12-04 20:05:22 -05:00
nhmall
6156522eb0 Try to be consistent in declared O/S versions
Changes to be committed:
	modified:   README
2015-12-04 20:03:38 -05:00
PatR
171fb90746 !DEBUG warnings
With DEBUG suppressed, I started getting
16      warning: empty body in an if-statement
and 2   warning: empty body in an else-statement
from gcc.

Using braces for an empty block instead of just ';' avoids the warning:
    if (foo)
        debugpline("foo");
is bad,
    if (bar) {
        debugpline("bar");
    }
is good.  ;-)

The changes to lint.h are just precautionary.

modified:
    include/lint.h
    src/attrib.c, bones.c, dbridge.c, dig.c, eat.c,
        makemon.c, mkmaze.c, mon.c, sp_lev.c
2015-12-04 14:58:49 -08:00