Commit Graph

3007 Commits

Author SHA1 Message Date
nhw_cron
3b5d78fb5d This is cron-daily v1-Jan-20-2020. guidebook updated: doc/Guidebook.txt 2020-01-27 10:28:12 -05:00
nhmall
62a3bf250f Guidebook date-stamp 2020-01-27 09:27:03 -05:00
nhmall
391e100d38 doc/Guidebook.txt update from daily cron 2020-01-26 10:03:15 -05:00
nhmall
9e165b9e2a release prep bits 2020-01-25 23:42:36 -05:00
Bart House
05455f7baa Fall back to executable path if we have trouble converting known path. 2020-01-25 17:07:45 -08:00
nhmall
92deddd6a3 use vsnprintf instead of vsprintf in pline.c 2020-01-20 16:09:00 -05:00
PatR
f3def5c0b9 command line triggered buffer overruns
Prevent extremely long command line arguments from overflowing local
buffers in raw_printf or config_error_add.  The increased buffer
sizes they recently got to deal with long configuration file values
aren't sufficient to handle command line induced overflows.

choose_windows(core): copy and truncate the window_type argument in
case it gets passed to config_error_add().

process_options(unix): report bad values with "%.60s" so that vsprintf
will implicitly truncate when formatted by raw_printf().
2020-01-20 16:08:59 -05:00
nhmall
a8208b44c8 fixes update 2020-01-16 10:18:37 -05:00
Pasi Kallinen
f4ab235b81 Prevent accessing outside the mons array
Fix another out-of-bounds error
Monster trying to decide if a tin could cure stoning looking at
a special or empty tin would do acidic(&mons[-1])
2020-01-16 10:14:16 -05:00
nhw_cron
c8fbb3b7b1 This is cron-daily v1-Jan-14-2020. guidebook updated: doc/Guidebook.txt 2020-01-14 22:20:38 -05:00
nhmall
4b052f753e Merge branch 'NetHack-3.6-housekeeping-for-3.6.5' into NetHack-3.6 2020-01-14 21:58:55 -05:00
nhw_cron
b21b99d433 This is cron-daily v1-Jan-14-2020. manpages updated: mnh.txt 2020-01-14 11:55:59 -05:00
nhw_cron
466a126e39 This is cron-daily v1-Jan-14-2020. manpages updated: mn.txt 2020-01-14 11:55:45 -05:00
nhw_cron
35634fab8e This is cron-daily v1-Jan-14-2020. manpages updated: recover.txt 2020-01-14 11:52:38 -05:00
nhw_cron
7ac4e0fd06 This is cron-daily v1-Jan-14-2020. manpages updated: nethack.txt 2020-01-14 11:52:19 -05:00
nhw_cron
cc3570a7d9 This is cron-daily v1-Jan-14-2020. manpages updated: makedefs.txt 2020-01-14 11:52:00 -05:00
nhw_cron
36736f2cf7 This is cron-daily v1-Jan-14-2020. manpages updated: lev_comp.txt 2020-01-14 11:51:36 -05:00
nhw_cron
e44e05df59 This is cron-daily v1-Jan-14-2020. manpages updated: dlb.txt 2020-01-14 11:51:14 -05:00
nhw_cron
ed72eb71da This is cron-daily v1-Jan-14-2020. manpages updated: dgn_comp.txt 2020-01-14 11:50:59 -05:00
nhmall
41137101a4 documentation updates 2020-01-14 11:44:02 -05:00
nhmall
a6c46bbd85 housekeeping items for 3.6.5 - first pass 2020-01-14 11:35:06 -05:00
PatR
cdc598e8bd fix pline.c potential buffer overruns
Fix 'Bugs 4, 5, and 6' which all use a similar fix but would have
conflicts over '#define BIGBUFSZ' if committed separately.

Format ("short explanation %s", string_argument), where the
explanation always has modest length but the string is potentially
up to 4*BUFSZ in length, into a 5*BUFSZ buffer.  Then truncate the
result to at most BUFSZ-1 characters so that it can be safely passed
to interface-specific putstr() or raw_print().

Applies to pline(), raw_printf(), and config_error_add().  Also done
for impossible() although there's no evidence that its buffer could
be overflowed in a controlled manner.
2020-01-14 02:52:34 -08:00
PatR
74de7d31e0 fix sym_val() buffer overrun
Fix 'Bug 3' where too long SYMBOL=string in run-time config file could
overflow a local buffer and clobber the stack.

Valid value is only one character long after processing an 'escaped'
encoded character which can be at most 6 characters (plus terminator):
backslash M backslash and up three digits.  If/when UTF8 gets added
the number of digits will increase.  Use a truncated copy of the input
(substantially bigger than 6+1); ignore any excess.
2020-01-14 02:05:14 -08:00
PatR
a842fda44c fix add_menu_coloring() buffer overrun
Fix 'Bug 2' where too long MENUCOLOR=string in run-time config file
could overflow a local buffer and clobber the stack.

Theoretically a menu coloring regular expression could require a
bigger buffer but I don't think we need to try to support that.
255 characters minus the amount needed to specify color and/or
attributes should be ample.
2020-01-13 19:26:53 -08:00
PatR
c35139e9ce fixes36.5 2020-01-13 19:17:35 -08:00
nhmall
25c9fb8d2f fixes update 2020-01-13 15:30:23 -05:00
nhmall
08dd9acf92 post-release windows binary fix 2019-12-21 20:02:37 -05:00
nhmall
843bb5cfc9 landing spot for post-3.6.4 patches if needed
This is a landing spot.
2019-12-18 16:49:55 -05:00
nhw_cron
7348621e41 This is cron-daily v1-Dec-12-2019. guidebook updated: doc/Guidebook.txt 2019-12-18 07:15:54 -05:00
nhmall
96155c7e02 housekeeping updates 2019-12-17 23:38:06 -05:00
nhmall
9815cceae6 Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2019-12-17 23:18:06 -05:00
nhmall
5f0d06fb80 update and simplify the windows portable_device_paths sysconf option
Requires a sysconf file in the windows executable directory in order to work
2019-12-17 23:16:44 -05:00
PatR
8349d95992 ceiling hiders vs '>'
Poly'd hero hiding on the ceiling was told "you can't go down here"
if using '>' at a spot that didn't have down stairs, trap door, hole,
or pit.  Let '>' bring a ceiling hider out of hiding; lurker above
resumes flying, piercer falls to floor or whatever is underneath it.
2019-12-17 19:08:26 -08:00
PatR
512f886ca6 wizard mode wishing for terrain
Fix some issues noticed when experimenting with ceiling hiders.
They're all blind (at least without the monks' Eyes) and some of
the behavior while blind seemed to be incorrect (though some that
I thought was wrong turned out to be ok; feel_newsym() won't update
the map if the hero can't reach the floor).  Fixing that made me
notice that some terrain side-effects (being underwater or stuck in
lava) weren't getting disabled when the underlying terrain wasn't
the corresponding type anymore.
2019-12-17 18:14:08 -08:00
nhw_cron
71b7d6299c This is cron-daily v1-Dec-12-2019. guidebook updated: doc/Guidebook.txt 2019-12-17 14:53:51 -05:00
nhmall
853a4608f0 Merge branch 'housekeeping-to-merge-at-3.6.4-release' into NetHack-3.6 2019-12-17 14:19:20 -05:00
PatR
f4a840a48f fix potential buffer overflow loading config file 2019-12-17 14:17:55 -05:00
nhmall
74a5339a5e housekeeping updates for 3.6.4
typos

README update
2019-12-17 14:11:52 -05:00
nhmall
58241fdaf3 put original 3.7 fixes entry into 3.6 fixes file 2019-12-17 12:17:46 -05:00
nhmall
ac6e13fd7a allow run-from-removable-device configuration on Windows
Allow a way to configure NetHack to run entirely from a USB stick
or other removable device in a way that allows everything to
reside entirely on the USB stick, and nothing on the computer's
hard drive. That could be done in versions prior to 3.6.3.

Sample:

i: is a USB stick

i:\nhdist contains the NetHack Windows distribution and a sysconf
file dropped into that distribution with the following entry in it:
	portable_device_top = nethack

No device is included in the portable_device_top entry, the device
is always the device that the nethack exe resides on. If you try
to specify a device in the portable_device_top path, the device
portion will be ignored.

portable_device_top specifies the folder on the device that is writable
by NetHack and as such it cannot be the same folder that the executable
resides in.

i:\nhdist\nethack --showpaths
Variable playground locations:
    [hackdir   ]="i:\nethack\"
    [leveldir  ]="i:\nethack\"
    [savedir   ]="i:\nethack\"
    [bonesdir  ]="i:\nethack\"
    [datadir   ]="i:\nhdist\"
    [scoredir  ]="i:\nethack\"
    [lockdir   ]="i:\nethack\"
    [sysconfdir]="i:\nhdist\"
    [configdir ]="i:\nethack\"
    [troubledir]="i:\nethack\"
NetHack's system configuration file (in sysconfdir):
    "i:\nhdist\sysconf"
The loadable symbols file (in sysconfdir):
    "i:\nhdist\symbols"
Basic data files (in datadir) are collected inside:
    "i:\nhdist\nhdat363"
No end-of-game disclosure file (disabled).
Writable folder for portable device config (sysconf portable_device_top):
    "i:\nethack\"
Your personal configuration file (in configdir):
    "i:\nethack\.nethackrc"

Without that sysconf file in the NetHack distribution folder on the
USB stick with the 'portable_device_top = '  entry, the paths
return to the default locations for 3.6.3 on Windows:

i:\nhdist\nethack --showpaths
Variable playground locations:
    [hackdir   ]="C:\Users\JaneDoe\NetHack\3.6\"
    [leveldir  ]="C:\Users\JaneDoe\AppData\Local\NetHack\3.6\"
    [savedir   ]="C:\Users\JaneDoe\AppData\Local\NetHack\3.6\"
    [bonesdir  ]="C:\ProgramData\NetHack\3.6\"
    [datadir   ]="i:\nhdist\"
    [scoredir  ]="C:\ProgramData\NetHack\3.6\"
    [lockdir   ]="C:\ProgramData\NetHack\3.6\"
    [sysconfdir]="C:\ProgramData\NetHack\3.6\"
    [configdir ]="C:\Users\JaneDoe\NetHack\"
    [troubledir]="C:\Users\JaneDoe\NetHack\3.6\"
NetHack's system configuration file (in sysconfdir):
    "C:\ProgramData\NetHack\3.6\sysconf"
The loadable symbols file (in sysconfdir):
    "C:\ProgramData\NetHack\3.6\symbols"
Basic data files (in datadir) are collected inside:
    "i:\nhdist\nhdat363"
No end-of-game disclosure file (disabled).
Your personal configuration file (in configdir):
    "C:\Users\JaneDoe\NetHack\.nethackrc"
2019-12-17 00:41:55 -05:00
Patric Mueller
9085093338 Fix compilation on platforms that split the ncurses and tinfo libraries
Some platforms compile ncurses in such a way that the tinfo library needs to
be separately linked in (e.g. Gentoo).

The tinfo library is a low-level library being used by and bundled with
ncurses.

Adding '-ltinfo' to WINTTYLIB in the hint files was considered the most robust
solution to this problem.  This still works on systems with ncurses 5.9.
Using pkg-config was ruled out as the default build of ncurses doesn't install
the necessary files.
2019-12-15 20:38:44 +01:00
nhw_cron
d654a4f5d1 This is cron-daily v1-Dec-12-2019. guidebook updated: doc/Guidebook.txt 2019-12-15 13:19:35 -05:00
keni
be01fba97a add date to Guidebook.mn title page 2019-12-15 12:38:42 -05:00
PatR
c0b74f6ba4 fixes typo 2019-12-13 17:39:39 -08:00
PatR
84bdff6976 kinda/sorta fix github issue #246
Cherry-pick 3.7.0's 565e020573.  Again,
conflict because the fixes entry goes into a different file.

When picking up from floor or removing from container fails because
there aren't any inventory slots available, pickup/take-out stops.
But the message
|Your knapsack can't accomodate any more items.
is inaccurate if there is gold beyond the stopping point.  Actually
continuing in order to pickup/take-out gold would require substantial
changes, but varying the message to be
|Your knapsack can't accomodate any more items (except gold).
when stopping is a one line fix.  The parenthesized remark is only
added if there is actually some gold after the current object and is
given regardless of whether autopickup happens to be targetting it.

Fixes #246
2019-12-13 16:15:37 -08:00
PatR
f8fbe4e989 allow teleport onto the vibrating square
Cherry-pick 3.7.0's 4a3d5f95d9
(github pull request #252).  Slightly tricky because the fix entry
nowgoes into a different file.  fixes37.0 will need fixing up.
2019-12-13 15:58:56 -08:00
PatR
8a57029503 spelling and typo fixes
Submitted for 3.7.0; all but one also apply to 3.6.3.

I rewrote the curses terminal-too-small message instead of just
fixing the spelling of "minumum".
2019-12-11 12:35:45 -08:00
nhmall
a7ac5ce7f3 article fix for polymorphing steed 2019-12-06 17:50:59 -05:00
PatR
afb4a67f0e PANICTRACE memory leak
Changing from BETA to RELEASED resulted in turning off PANICTRACE
and that exposed a minor memory leak.  Only applies to program exit
so doesn't impact play.
2019-12-06 12:59:18 -08:00
nhw_cron
bd7547fe62 This is cron-daily v1-Dec-2-2019. guidebook updated: doc/Guidebook.txt 2019-12-05 18:10:19 -05:00