Merge 'NetHack-3.6' updates into NetHack-3.7-Jan2020

This commit is contained in:
nhmall
2020-01-14 22:09:29 -05:00
32 changed files with 549 additions and 316 deletions

View File

@@ -226,6 +226,9 @@ fixes to NetHack 3.6.2.
NetHack 3.6.4 was released on December 18, 2019 containing a security
fix and a few bug fixes.
NetHack 3.6.5 was released in January, 2020 containing some security fixes
and a small number of bug fixes.
The official NetHack web site is maintained by Ken Lorber at
http://www.nethack.org/.

View File

@@ -24,7 +24,7 @@
.ds vr "NetHack 3.7
.ds f0 "\*(vr
.ds f1
.ds f2 "January 7, 2020
.ds f2 "January 14, 2020
.
.\" A note on some special characters:
.\" \(lq = left double quote
@@ -5233,6 +5233,9 @@ fixes to NetHack 3.6.2.
NetHack 3.6.4 was released on December 18, 2019 containing a security fix
and a few bug fixes.
.pg
NetHack 3.6.5 was released in January, 2020 containing some security fixes
and a small number of bug fixes.
.pg
The official NetHack web site is maintained by \fBKen Lorber\fP
at
.UR https://www.nethack.org/ .

View File

@@ -45,7 +45,7 @@
%.au
\author{Original version - Eric S. Raymond\\
(Edited and expanded for 3.6 by Mike Stephenson and others)}
\date{January 7, 2020}
\date{January 14, 2020}
\maketitle
@@ -5842,6 +5842,11 @@ fixes to NetHack 3.6.2.
NetHack 3.6.4 was released on December 18, 2019 containing a security fix and
a few bug fixes.
%.pg
\medskip
NetHack 3.6.5 was released in January, 2020 containing some security fixes
and a small number of bug fixes.
%.pg
\medskip
\nd The official {\it NetHack\/} web site is maintained by {\it Ken Lorber} at

View File

@@ -1,132 +1,72 @@
DLB(6) 1993 DLB(6)
DLB(6) Games Manual DLB(6)
NAME
dlb - NetHack data librarian
dlb - NetHack data librarian
SYNOPSIS
dlb { xct } [ vfIC ] arguments... [ files... ]
dlb { xct } [ vfIC ] arguments... [ files... ]
DESCRIPTION
Dlb is a file archiving tool in the spirit (and tradition)
of tar for NetHack version 3.1 and higher. It is used to
maintain the archive files from which NetHack reads special
level files and other read-only information. Note that like
tar the command and option specifiers are specified as a
continuous string and are followed by any arguments required
in the same order as the option specifiers.
Dlb is a file archiving tool in the spirit (and tradition) of tar for
NetHack version 3.1 and higher. It is used to maintain the archive
files from which NetHack reads special level files and other read-only
information. Note that like tar the command and option specifiers are
specified as a continuous string and are followed by any arguments
required in the same order as the option specifiers.
This facility is optional and may be excluded during NetHack
configuration.
^?ALLDOCS This facility is optional and may be excluded during NetHack
configuration. ^: ^?DLB This facility is optional but is included in
this NetHack configuration. ^: This facility is optional and was
excluded from this NetHack configuration. ^. ^.
COMMANDS
The x command causes dlb to extract the contents of the
archive into the current directory.
The x command causes dlb to extract the contents of the archive into
the current directory.
The c command causes dlb to create a new archive from files
in the current directory.
The c command causes dlb to create a new archive from files in the cur-
rent directory.
The t command lists the files in the archive.
The t command lists the files in the archive.
OPTIONS AND ARGUMENTS
v verbose output
v verbose output
f archive specify the archive. Default if f not specified
is LIBFILE (usually the nhdat file in the playground).
f archive specify the archive. Default if f not specified is LIBFILE
(usually the nhdat file in the playground).
I lfile specify the file containing the list of files to
put in to or extract from the archive if no files are listed
on the command line. Default for archive creation if no
files are listed is LIBLISTFILE.
I lfile specify the file containing the list of files to put in to
or extract from the archive if no files are listed on the command line.
Default for archive creation if no files are listed is LIBLISTFILE.
C dir change directory. Changes directory before try-
ing to read any files (including the archive and the lfile).
C dir change directory. Changes directory before trying to read
any files (including the archive and the lfile).
EXAMPLES
Create the default archive from the default file list:
dlb c
Create the default archive from the default file list:
dlb c
List the contents of the archive 'foo':
dlb tf foo
List the contents of the archive 'foo':
dlb tf foo
AUTHOR
Kenneth Lorber
Oct Last change: 28 1
DLB(6) 1993 DLB(6)
Kenneth Lorber
SEE ALSO
nethack(6), tar(1)
nethack(6), tar(1)
BUGS
Not a good tar emulation; - does not mean stdin or stdout.
Should include an optional compression facility. Not all
read-only files for NetHack can be read out of an archive;
examining the source is the only way to know which files can
be.
Oct Last change: 28 2
Not a good tar emulation; - does not mean stdin or stdout. Should
include an optional compression facility. Not all read-only files for
NetHack can be read out of an archive; examining the source is the only
way to know which files can be.
COPYRIGHT
This file is Copyright (C) Kenneth Lorber and was last modified
2018/04/25 (version NetHack-3.6.0:1.7). NetHack may be freely redis-
tributed. See license for details.
NETHACK 25 May 2015 DLB(6)

View File

@@ -1,4 +1,4 @@
MAKEDEFS(6) MAKEDEFS(6)
MAKEDEFS(6) Games Manual MAKEDEFS(6)
@@ -32,7 +32,9 @@ SHORT COMMANDS
-m Generate monster.c.
-v Generate date.h and options file.
-v Generate date.h and options file. It will read dat/gitinfo.txt,
only if it is present, to obtain githash= and gitbranch=
info and include related preprocessor #defines in date.h file.
-p Generate pm.h
@@ -40,11 +42,20 @@ SHORT COMMANDS
-r Generate the rumors file.
-s Generate the bogusmon , engrave and epitaphfiles.
-h Generate the oracles file.
-z Generate vis_tab.c and vis_tab.h.
LONG COMMANDS
--debug
Show debugging output.
--make [command]
Execute a short command. Command is given without preceding
dash.
--input file
Specify the input file for the command (if needed). If the file
is - standard input is read.
@@ -58,7 +69,7 @@ LONG COMMANDS
newline. If specified, the delimiter is used between each part
of the version string.
--grep Filter the input file to the output file. See the MDGREP FUNC
--grep Filter the input file to the output file. See the MDGREP FUNC-
TIONS section below for information on controlling the filtering
operation.
@@ -82,7 +93,7 @@ MDGREP FUNCTIONS
The --grep command (and certain other commands) filter their input, on
a line-by-line basis, according to control lines embedded in the input
and on information gleaned from the NetHack(6) configuration. This
allows certain changes such as embedding platform-specific documenta
allows certain changes such as embedding platform-specific documenta-
tion into the master documentation files.
Rules:
@@ -90,11 +101,11 @@ MDGREP FUNCTIONS
- The default conditional state is printing enabled.
- Any line NOT starting with a caret (^) is either suppressed
or passed through unchanged depending on the current condi
or passed through unchanged depending on the current condi-
tional state.
- Any line starting with a caret is a control line; as in C,
zero or more spaces may be embedded in the line almost any
zero or more spaces may be embedded in the line almost any-
where (except immediately after the caret); however the
caret must be in column 1.
@@ -105,7 +116,7 @@ MDGREP FUNCTIONS
many errors as possible to be detected.
- Unknown identifiers are treated as both TRUE and as an
error. Note that --undef or #undef in the NetHack(6) con
error. Note that --undef or #undef in the NetHack(6) con-
figuration are different from unknown.
Control lines:
@@ -130,6 +141,11 @@ AUTHOR
SEE ALSO
dgn_comp(6)
COPYRIGHT
This file is Copyright (C) Kenneth Lorber and was last modified
2018/04/25 (version NetHack-3.6.0:1.10). NetHack may be freely redis-
tributed. See license for details.
4th Berkeley Distribution 29 Apr 2010 MAKEDEFS(6)
NETHACK 25 May 2015 MAKEDEFS(6)

215
doc/mn.txt Normal file
View File

@@ -0,0 +1,215 @@
MN(7) Miscellaneous Information Manual MN(7)
NAME
mn - text formatting macros for the news documentation
SYNOPSIS
nroff -mn [ options ] file ...
troff -mn [ options ] file ...
DESCRIPTION
This package of nroff(1) and troff(1) macro definitions provides a for-
matting facility which may be used to run off the formatted news docu-
ments. When reverse line motions are needed, filter the output through
col(1).
All -mn macros, diversions, string registers, and number registers are
defined below. Many nroff and troff requests are unsafe in conjunction
with this package. However, the requests below may be used with
impunity:
.bp begin new page
.br break output line
.sp n insert n spacing lines
.ce n center next n lines
.ls n line spacing: n=1 single, n=2 double space
.na no alignment of right margin
Font and point size changes with \f and \s are also allowed; for exam-
ple, ``\f2word\fR'' will italicize word. Output of the tbl(1), eqn(1),
and refer(1) preprocessors for equations, tables, and references is
acceptable as input.
FILES
/usr/lib/tmac/tmac.n
SEE ALSO
eqn(1), refer(1), tbl(1), troff(1)
WARNINGS
If you do not set the string register ``.f'' to the file name, you will
only be told the line number on which any errors occur. If you define
this string to be the file name, you will get the file name, too. This
is useful when dealing with a document split up into many files.
This package is not now intended for uses other than with the news doc-
umentation.
Bug reports are always welcome; please send them to the author.
(Include a sample of the input; this helps track down the bug.)
AUTHOR
Matt Bishop (mab@riacs.arpa, ihnp4!ames!riacs!mab, dec-
vax!decwrl!riacs!mab)
Updated for versions 1.4-1.6 by The NetHack Development Team
REQUESTS
In the Note column, b means the request causes a break, and i means the
macro, number register, string register, or diversion is internal and
should not be used for anything. In the What It Is column, div means
diversion, mac means macro, num means number register, and str means
string register. In the Initial Value column, a hyphen means no ini-
tial value is used, anything else is the initial value, and if two val-
ues are given, the first is for nroff and the second for troff.
Macro What Initial Note Explanation
Name It Is Value
.f num - - file name, used in error messages if set
.ai mac - - author's institution
.au mac - b author's name
.b x y z mac - - print x in font 3, y after, z before;
if no arguments, switch to font 3
b num - i used to embolden italics
.bi x y z mac - - print x in emboldened font 2, y after,
z before
bm num 1i,1i+1v - height of bottom margin
.bt mac - - print pottom title
bt num .5i+1v - bottom of footer to bottom of page
.cf x y z mac - - print contents of header line (double
quotes around x, y before, z after)
cm num 0 - 0 if no cut marks, nonzero if cut marks
.cn x y z mac - - print computer/site name; same as .i
.dd div - i text of display
dg str *,- - footnote mark
dw str current - name of current day of week
dy str current - full date
.ed mac - b end display
.ef mac - b end footnote
.ei mac - b move left margin to the right
.er mac - - print error message
.et mac - b,i macro called at end of text
f0 str - - left bottom title
f1 num - i current font number
f1 str date,- - center bottom title
f2 num - i previous font number
f2 str - - right bottom title
fc num - i per-page footnote count
.fd mac - b,i drop footnotes
fg num - i gets fudge factor for footnote
fl num 5.5i - default footnote line length
.fn mac - - begin footnote
.fo mac - - bottom of page (footer) macro
fp num - i current location of trap for .fo macro
.fs mac - i print text/footnote separator
fs num - i position where footnote printing should begin
.fx mac - i collect overflow footnotes
.fy div - i text of footnote overflow
.fz mac - i move overflow footnotes from .fy to .tf
gs num - i used to be sure footnotes fit
h0 num 0 i current level 1 section number
h0 str - - left header title
h1 num 0 i current level 2 section number
h1 str - page - - center header title
h2 num 0 i current level 3 section number
h2 str - - right header title
h3 num 0 i current level 4 section number
.hd mac - i top of page (header) macro
.hf mac - - print header field name; same as .cf
.hn x mac - b numbered section; if present, x is level
hn num 0 i current level of numbering (temporary)
hs num 1v - default intra-section spacing
.hu mac - b unnumbered section header
.i x y z mac - - print x in font 2, y after, z before;
if no arguments, switch to font 2
i1 num - i current indent
i2 num - i previous indent
id num 0 i 1 if in display, 0 otherwise
if num 0 i 1 if in footnote, 0 otherwise
.is x y z mac - - print x 2p bigger, y after, z before;
if no arguments, increase point size by 2p
it num 0 i 0 before .bt called, 1 after
l0 num 0 i leftmost position for left margin
l1 num - i first level of indent for left margin
l2 num - i second level of indent for left margin
l3 num - i third level of indent for left margin
l4 num - i fourth level of indent for left margin
l5 num - i fifth level of indent for left margin
l6 num - i sixth level of indent for left margin
l7 num - i seventh level of indent for left margin
l8 num - i eighth level of indent for left margin
l9 num - i ninth level of indent for left margin
li num 5n - paragraph indent
ll num 6i - default line length
lm num 0 i current level of indent for left margin
lo num - i previous level for left margin
.lp x y mac - b labelled paragraph; x is label, y indent
lq str ",`` - left double quotation marks
mo str current - name of current month
.mt mac - b title
mt num 1.5i+1v - distance of title from top of page
.ng x y z mac - - newsgroup name; same as .b
.nl mac - b reset point size to default
ns num 0 i if nonzero, .fn does not call .fs
.op x y z mac - - command option; same as .b
p1 num 0 i 1 after PDP-11(tm) footnote printed,
0 before
.pa x y z mac - - print protocol appellation; same as .i
.pd x y mac - - print PDP-11(tm), footnote; x after,
y before
pd num 1v,.3v - intra-paragraph spacing
.pf mac - - print footer title
.pg x mac - b paragraph; if x is l, left justify
pi num 5n - default paragraph indent
po num 1.25i - default page offset
ps num 12p - default point size
.pt x mac - - print header; x is distance from top of
page
.qc x y z mac - - print name of control char; x is name,
in font 3, between <>, y after, z before
.qp x y z mac - - print char; same as .b
.r mac - - switch to font 1
rg str - - registered trademark symbol
rq str ",'' - right double quotation marks
s1 num - i current point size
s2 num - i previous point size
.sd x mac - - start display; if x is c, center display
sf num - i 1 if center display, 0 otherwise
.si x num - - indent left margin by x (5n default)
.sm x y z mac - - print x 2p smaller, y after, z before;
if no arguments, decrease point size by 2p
.sn x mac - b space by x (1v default), enter nospace mode
.sr x mac - - enter spacemode, space by x (1v default)
t2 num 0 i 0 if little/no space, nonzero otherwise
.tf div - i text of footnotes
tm num 1i-.5v - height of top margin
tt num .5i-.5v - distance from top of page to header
.ux x y mac - - print UNIX(tm), footnote; x after,
y before
ux num 0 i 1 after UNIX(tm) footnote printed,
0 before
v1 num - i current vertical spacing
v2 num - i previous vertical spacing
vr str - - current version of news
vs num 16p - default vertical spacing
vx num 0 i 1 after VAX(tm) footnote printed,
0 before
.vx x y mac - - print VAX(tm), footnote; x after,
y before
ws str - - used to construct error message
.ya mac - - same as calling .yf, .yi, .ys, .yv
.yf mac - - restore fonts saved by .zf
.yi mac - - restore indents saved by .zi
Yr str - - current year
.ys mac - - restore point sizes saved by .zs
.yv mac - - restore vertical spacings saved by .zv
.za mac - - same as calling .zf, .zi, .zs, .zv
.zf mac - - save previous, current fonts
.zi mac - - save previous, current indents
.zs mac - - save previous, current point sizes
.zv mac - - save previous, current vertical spacings
News Version B2.11 MN(7)

59
doc/mnh.txt Normal file
View File

@@ -0,0 +1,59 @@
MNH(7) Miscellaneous Information Manual MNH(7)
NAME
mnh - additional text formatting macros for the NetHack Guidebook
SYNOPSIS
make Guidebook
DESCRIPTION
This package of nroff(1) and troff(1) macro definitions extends
tmac.n(7) for the NetHack Guidebook. This document should be read as
an addendum to the documentation for tmac.n.
All -mnh macros, diversions, string registers, and number registers are
defined below.
FILES
doc/tmac.nh
SEE ALSO
mn(7)
AUTHOR
Pat Rankin
REQUESTS
In the Note column, b means the request causes a break, and i means the
macro, number register, string register, or diversion is internal and
should not be used for anything. In the What It Is column, div means
diversion, mac means macro, num means number register, and str means
string register. In the Initial Value column, a hyphen means no ini-
tial value is used, anything else is the initial value, and if two val-
ues are given, the first is for nroff and the second for troff.
Macro What Initial Note Explanation
Name It Is Value
.BR mac - - hard line break with vertical padding inserted
bR num - i
.CC x y mac - - aligned one char key x with short definition y
CW num - i
CX num - i
CY num - i
CZ num - i
CZ num - i
.ED mac - - ends .SD
.PE mac - b labelled paragraph end
.PL x mac - b labelled paragraph label is x
.PS x mac - b labelled paragraph start for label the width of x
PX num - i
PY num - i
.SD x mac - - .sd with options c-center i-indent n-no indent
SF num - i
.UX mac - - .ux with updated trademark owner
NETHACK MNH(7)

View File

@@ -1,4 +1,4 @@
NETHACK(6) NETHACK(6)
NETHACK(6) Games Manual NETHACK(6)
@@ -7,113 +7,124 @@ NAME
SYNOPSIS
nethack [ -d directory ] [ -n ] [ -p profession ] [ -r race ] [ -[DX] ]
[ -u playername ] [ -dec ] [ -ibm ] [ --version[:paste] ]
[ -u playername ] [ -dec ] [ -ibm ] [ --showpaths ] [ --version[:paste]
]
nethack [ -d directory ] -s [ -v ] [ -p profession ] [ -r race ] [
playernames ]
DESCRIPTION
NetHack is a display oriented Dungeons & Dragons(tm) - like game. The
NetHack is a display oriented Dungeons & Dragons(tm) - like game. The
standard tty display and command structure resemble rogue.
Other, more graphical display options exist for most platforms.
To get started you really only need to know two commands. The command
? will give you a list of the available commands (as well as other
information) and the command / will identify the things you see on the
To get started you really only need to know two commands. The command
? will give you a list of the available commands (as well as other
information) and the command / will identify the things you see on the
screen.
To win the game (as opposed to merely playing to beat other people's
high scores) you must locate the Amulet of Yendor which is somewhere
To win the game (as opposed to merely playing to beat other people's
high scores) you must locate the Amulet of Yendor which is somewhere
below the 20th level of the dungeon and get it out. Few people achieve
this; most never do. Those who have go down in history as heroes among
heroes - and then they find ways of making the game even harder. See
the Guidebook section on Conduct if this game has gotten too easy for
heroes - and then they find ways of making the game even harder. See
the Guidebook section on Conduct if this game has gotten too easy for
you.
When the game ends, whether by your dying, quitting, or escaping from
the caves, NetHack will give you (a fragment of) the list of top scor-
ers. The scoring is based on many aspects of your behavior, but a
When the game ends, whether by your dying, quitting, or escaping from
the caves, NetHack will give you (a fragment of) the list of top scor-
ers. The scoring is based on many aspects of your behavior, but a
rough estimate is obtained by taking the amount of gold you've found in
the cave plus four times your (real) experience. Precious stones may
be worth a lot of gold when brought to the exit. There is a 10%
the cave plus four times your (real) experience. Precious stones may
be worth a lot of gold when brought to the exit. There is a 10%
penalty for getting yourself killed.
The environment variable NETHACKOPTIONS can be used to initialize many
run-time options. The ? command provides a description of these
The environment variable NETHACKOPTIONS can be used to initialize many
run-time options. The ? command provides a description of these
options and syntax. (The -dec and -ibm command line options are equiv-
alent to the decgraphics and ibmgraphics run-time options described
there, and are provided purely for convenience on systems supporting
alent to the decgraphics and ibmgraphics run-time options described
there, and are provided purely for convenience on systems supporting
multiple types of terminals.)
Because the option list can be very long (particularly when specifying
graphics characters), options may also be included in a configuration
file. The default is located in your home directory and named
.nethackrc on Unix systems. On other systems, the default may be dif-
ferent, usually NetHack.cnf. On DOS or Windows, the name is
defaults.nh, while on the Macintosh or BeOS, it is NetHack Defaults.
The configuration file's location may be specified by setting NETHACK-
OPTIONS to a string consisting of an @ character followed by the file-
Because the option list can be very long (particularly when specifying
graphics characters), options may also be included in a configuration
file. The default is located in your home directory and named
.nethackrc on Unix systems. On other systems, the default may be dif-
ferent, usually NetHack.cnf. On DOS or Windows, the name is
defaults.nh, while on the Macintosh or BeOS, it is NetHack Defaults.
The configuration file's location may be specified by setting NETHACK-
OPTIONS to a string consisting of an @ character followed by the file-
name.
The -u playername option supplies the answer to the question "Who are
you?". It overrides any name from the options or configuration file,
USER, LOGNAME, or getlogin(), which will otherwise be tried in order.
If none of these provides a useful name, the player will be asked for
The -u playername option supplies the answer to the question "Who are
you?". It overrides any name from the options or configuration file,
USER, LOGNAME, or getlogin(), which will otherwise be tried in order.
If none of these provides a useful name, the player will be asked for
one. Player names (in conjunction with uids) are used to identify save
files, so you can have several saved games under different names. Con-
versely, you must use the appropriate player name to restore a saved
versely, you must use the appropriate player name to restore a saved
game.
A playername suffix can be used to specify the profession, race, align-
ment and/or gender of the character. The full syntax of the playername
that includes a suffix is "name-ppp-rrr-aaa-ggg". "ppp" are at least
the first three letters of the profession (this can also be specified
using a separate -p profession option). "rrr" are at least the first
that includes a suffix is "name-ppp-rrr-aaa-ggg". "ppp" are at least
the first three letters of the profession (this can also be specified
using a separate -p profession option). "rrr" are at least the first
three letters of the character's race (this can also be specified using
a separate -r race option). "aaa" are at last the first three letters
of the character's alignment, and "ggg" are at least the first three
letters of the character's gender. Any of the parts of the suffix may
a separate -r race option). "aaa" are at least the first three letters
of the character's alignment, and "ggg" are at least the first three
letters of the character's gender. Any of the parts of the suffix may
be left out.
-p profession can be used to determine the character profession, also
known as the role. You can specify either the male or female name for
the character role, or the first three characters of the role as an
-p profession can be used to determine the character profession, also
known as the role. You can specify either the male or female name for
the character role, or the first three characters of the role as an
abbreviation. -p @ has been retained to explicitly request that a ran-
dom role be chosen. It may need to be quoted with a backslash (\@) if
@ is the "kill" character (see "stty") for the terminal, in order to
dom role be chosen. It may need to be quoted with a backslash (\@) if
@ is the "kill" character (see "stty") for the terminal, in order to
prevent the current input line from being cleared.
Likewise, -r race can be used to explicitly request that a race be cho-
sen.
Leaving out any of these characteristics will result in you being
Leaving out any of these characteristics will result in you being
prompted during the game startup for the information.
The -s option alone will print out the list of your scores on the cur-
rent version. An immediately following -v reports on all versions
The -s option alone will print out the list of your scores on the cur-
rent version. An immediately following -v reports on all versions
present in the score file. The -s may also be followed by arguments -p
and -r to print the scores of particular roles and races only. It may
and -r to print the scores of particular roles and races only. It may
also be followed by one or more player names to print the scores of the
players mentioned, by 'all' to print out all scores, or by a number to
players mentioned, by 'all' to print out all scores, or by a number to
print that many top scores.
The -n option suppresses printing of any news from the game administra-
tor.
The -D or -X option will start the game in a special non-scoring dis-
covery mode. -D will, if the player is the game administrator, start
The -D or -X option will start the game in a special non-scoring dis-
covery mode. -D will, if the player is the game administrator, start
in debugging (wizard) mode instead.
The -d option, which must be the first argument if it appears, supplies
a directory which is to serve as the playground. It overrides the
value from NETHACKDIR, HACKDIR, or the directory specified by the game
administrator during compilation (usually /usr/games/lib/nethackdir).
This option is usually only useful to the game administrator. The
a directory which is to serve as the playground. It overrides the
value from NETHACKDIR, HACKDIR, or the directory specified by the game
administrator during compilation (usually /usr/games/lib/nethackdir).
This option is usually only useful to the game administrator. The
playground must contain several auxiliary files such as help files, the
list of top scorers, and a subdirectory save where games are saved.
--showpaths can be used to cause NetHack to show where it is expecting
to find various configuration files.
--version can be used to cause NetHack to show the version information
it was compiled with, then exit. That will include the git commit hash
if the information was available when the game was compiled. On some
platforms, such as windows and macosx, a variation --version:paste can
be used to cause NetHack to show the version information, then exit,
while also leaving a copy of the version information in the paste buf-
fer or clipboard for potential insertion into things like bug reports.
AUTHORS
Jay Fenlason (+ Kenny Woodland, Mike Thome and Jon Payne) wrote the
original hack, very much like rogue (but full of bugs).
@@ -212,10 +223,13 @@ SEE ALSO
BUGS
Probably infinite.
COPYRIGHT
This file is Copyright (C) Robert Patrick Rankin and was last modified
2019/09/15 (version NetHack-3.6:1.16). NetHack may be freely redis-
tributed. See license for details.
Dungeons & Dragons is a Trademark of Wizards of the Coast, Inc.
7 December 2015 NETHACK(6)
NETHACK 2 February 2018 NETHACK(6)

View File

@@ -1,132 +1,89 @@
RECOVER(6) 1993 RECOVER(6)
RECOVER(6) Games Manual RECOVER(6)
NAME
recover - recover a NetHack game interrupted by disaster
recover - recover a NetHack game interrupted by disaster
SYNOPSIS
recover [ -d directory ] base1 base2 ...
recover [ -d directory ] base1 base2 ...
DESCRIPTION
Occasionally, a NetHack game will be interrupted by disaster
when the game or the system crashes. Prior to NetHack v3.1,
these games were lost because various information like the
player's inventory was kept only in memory. Now, all per-
tinent information can be written out to disk, so such games
can be recovered at the point of the last level change.
Occasionally, a NetHack game will be interrupted by disaster when the
game or the system crashes. Prior to NetHack v3.1, these games were
lost because various information like the player's inventory was kept
only in memory. Now, all pertinent information can be written out to
disk, so such games can be recovered at the point of the last level
change.
The base options tell recover which files to process. Each
base option specifies recovery of a separate game.
The base options tell recover which files to process. Each base option
specifies recovery of a separate game.
The -d option, which must be the first argument if it
appears, supplies a directory which is the NetHack play-
ground. It overrides the value from NETHACKDIR, HACKDIR, or
the directory specified by the game administrator during
compilation (usually /usr/games/lib/nethackdir).
The -d option, which must be the first argument if it appears, supplies
a directory which is the NetHack playground. It overrides the value
from NETHACKDIR, HACKDIR, or the directory specified by the game admin-
istrator during compilation (usually /usr/games/lib/nethackdir).
For recovery to be possible, nethack must have been compiled
with the INSURANCE option, and the run-time option check-
point must also have been on. NetHack normally writes out
files for levels as the player leaves them, so they will be
ready for return visits. When checkpointing, NetHack also
writes out the level entered and the current game state on
every level change. This naturally slows level changes down
somewhat.
^?ALLDOCS For recovery to be possible, nethack must have been compiled
with the INSURANCE option, and the run-time option checkpoint must also
have been on. ^: ^?INSURANCE For recovery to be possible, nethack must
have been compiled with the INSURANCE option (this configuration was),
and the run-time option checkpoint must also have been on. ^: This
configuration of nethack was created without support for recovery. ^.
^. NetHack normally writes out files for levels as the player leaves
them, so they will be ready for return visits. When checkpointing,
NetHack also writes out the level entered and the current game state on
every level change. This naturally slows level changes down somewhat.
The level file names are of the form base.nn, where nn is an
internal bookkeeping number for the level. The file base.0
is used for game identity, locking, and, when checkpointing,
for the game state. Various OSes use different strategies
for constructing the base name. Microcomputers use the
character name, possibly truncated and modified to be a
legal filename on that system. Multi-user systems use the
(modified) character name prefixed by a user number to avoid
conflicts, or "xlock" if the number of concurrent players is
being limited. It may be necessary to look in the play-
ground to find the correct base name of the interrupted
game. recover will transform these level files into a save
file of the same name as nethack would have used.
The level file names are of the form base.nn, where nn is an internal
bookkeeping number for the level. The file base.0 is used for game
identity, locking, and, when checkpointing, for the game state. Vari-
ous OSes use different strategies for constructing the base name.
Microcomputers use the character name, possibly truncated and modified
to be a legal filename on that system. Multi-user systems use the
(modified) character name prefixed by a user number to avoid conflicts,
or "xlock" if the number of concurrent players is being limited. It
may be necessary to look in the playground to find the correct base
name of the interrupted game. recover will transform these level files
into a save file of the same name as nethack would have used.
Since recover must be able to read and delete files from the
playground and create files in the save directory, it has
interesting interactions with game security. Giving ordi-
nary players access to recover through setuid or setgid is
tantamount to leaving the playground world-writable, with
respect to both cheating and messing up other players. For
Since recover must be able to read and delete files from the playground
and create files in the save directory, it has interesting interactions
with game security. Giving ordinary players access to recover through
setuid or setgid is tantamount to leaving the playground world-
writable, with respect to both cheating and messing up other players.
For a single-user system, this of course does not change anything, so
some of the microcomputer ports install recover by default.
January Last change: 9 1
RECOVER(6) 1993 RECOVER(6)
a single-user system, this of course does not change any-
thing, so some of the microcomputer ports install recover by
default.
For a multi-user system, the game administrator may want to
arrange for all .0 files in the playground to be fed to
recover when the host machine boots, and handle game crashes
individually. If the user population is sufficiently
trustworthy, recover can be installed with the same permis-
sions the nethack executable has. In either case, recover
is easily compiled from the distribution utility directory.
For a multi-user system, the game administrator may want to arrange for
all .0 files in the playground to be fed to recover when the host
machine boots, and handle game crashes individually. If the user popu-
lation is sufficiently trustworthy, recover can be installed with the
same permissions the nethack executable has. In either case, recover
is easily compiled from the distribution utility directory.
NOTES
Like nethack itself, recover will overwrite existing save-
files of the same name. Savefiles created by recover are
uncompressed; they may be compressed afterwards if desired,
but even a compression-using nethack will find them in the
uncompressed form.
Like nethack itself, recover will overwrite existing savefiles of the
same name. Savefiles created by recover are uncompressed; they may be
compressed afterwards if desired, but even a compression-using nethack
will find them in the uncompressed form.
SEE ALSO
nethack(6)
nethack(6)
BUGS
recover makes no attempt to find out if a base name speci-
fies a game in progress. If multiple machines share a play-
ground, this would be impossible to determine.
recover makes no attempt to find out if a base name specifies a game in
progress. If multiple machines share a playground, this would be
impossible to determine.
recover should be taught to use the nethack playground lock-
ing mechanism to avoid conflicts.
January Last change: 9 2
recover should be taught to use the nethack playground locking mecha-
nism to avoid conflicts.
COPYRIGHT
This file is Copyright (C) Kenneth Lorber and was last modified
2018/04/25 (version NetHack-3.6.0:1.9). NetHack may be freely redis-
tributed. See license for details.
NETHACK 14 December 2015 RECOVER(6)

View File

@@ -44,6 +44,26 @@
/****************************************************************************/
/* Version 3.6.x */
/* Patch 5, January ??, 2020
*
* FIXME: update entries depending on whether the cherry-picks are included
* -- start cherry-pick entries
* fix accessing mons[-1] when trying to gate in a non-valid demon
* fix accessing mons[-1] when monster figures out if a tin cures stoning
* walking out of tethered-to-buried-object trap condition was supposed to
* reinstate punishment but wasn't finding the buried iron ball because
* the trap condition was cleared first to indicate escape; result was
* attached chain that got dragged around but had no ball attached
* -- end cherry-pick entries
* have string_for_opt() return empty_optstr on failure
* ensure existing callers of string_for_opt() check return value before using it
* fix potential buffer overflow in add_menu_coloring()0
* fix potential buffer overflow in sym_val()
* fix potential buffer overflow in pline(), raw_printf(), and config_error_add()
* Windows: incldues a fix from a 3.6.4 post-release update where
* OPTIONS=map_mode:fit_to_screen could cause a game start failure
*/
/* Patch 4, December 18, 2019
*
* fix potential buffer overflow when parsing run-time configuration file

View File

@@ -6165,6 +6165,7 @@ const char *strval; /* up to 4*BUFSZ-1 long; only first few chars matter */
} else {
char *p;
/* +1: skip opening single quote */
(void) strncpy(tmp, strval + 1, sizeof tmp - 1);
tmp[sizeof tmp - 1] = '\0';
if ((p = rindex(tmp, '\'')) != 0) {
@@ -6173,7 +6174,7 @@ const char *strval; /* up to 4*BUFSZ-1 long; only first few chars matter */
} /* else buf[0] stays '\0' */
}
} else { /* not lone char nor single quote */
(void) strncpy(tmp, strval + 1, sizeof tmp - 1);
(void) strncpy(tmp, strval, sizeof tmp - 1);
tmp[sizeof tmp - 1] = '\0';
escapes(tmp, buf);
}

View File

@@ -1155,7 +1155,7 @@ boolean fullsubs; /* True -> full substitution for file name, False ->
else
Strcpy(tmpbuf, "{current date+time}");
break;
case 'v': /* version, eg. "3.6.4-0" */
case 'v': /* version, eg. "3.6.5-0" */
Sprintf(tmpbuf, "%s", version_string(verbuf));
break;
case 'u': /* UID */

View File

@@ -1,2 +1,2 @@
*.p NHSUBST
* NH_filestag=(file%s_for_Amiga_versions_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_Amiga_versions_-_untested_for_3.6.5)

View File

@@ -1 +1 @@
* NH_filestag=(file%s_for_Atari_version_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_Atari_version_-_untested_for_3.6.5)

View File

@@ -1 +1 @@
* NH_filestag=(file%s_for_BeOS_version_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_BeOS_version_-_untested_for_3.6.5)

View File

@@ -4,6 +4,6 @@ Makefile.* NHSUBST
Install.* NHSUBST
moveinit.pat NH_header=no
vesa.h NH_header=no
* NH_filestag=(file%s_for_MSDOS_version_-_tested_for_3.6.4_via_partial_cross-compile_only)
* NH_filestag=(file%s_for_MSDOS_version)
nhico.uu NH_filestag=(file%s_for_running_MSDOS_binary_under_Windows)
nhpif.uu NH_filestag=>nhico.uu

View File

@@ -1,2 +1,2 @@
Makefile.* NHSUBST
* NH_filestag=(file%s_for_OS/2_version_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_OS/2_version_-_untested_for_3.6.5)

View File

@@ -5,16 +5,16 @@ dgn_comp.h NH_header=no
lev_comp.h NH_header=no
Makefile.lib NH_header=no
Makefile.lib NH_filestag=(file%s_for_MSDOS_and_OS/2_versions_-_untested_for_3.6.4)
#termcap.uu NH_filestag=(file%s_for_MSDOS_and_OS/2_versions_-_untested_for_3.6.4)
Makefile.lib NH_filestag=(file%s_for_MSDOS_and_OS/2_versions_-_untested_for_3.6.5)
#termcap.uu NH_filestag=(file%s_for_MSDOS_and_OS/2_versions_-_untested_for_3.6.5)
termcap.uu NH_filestag=>Makefile.lib
pcmain.c NH_filestag=(file_for_MSDOS,_OS/2,_Amiga,_and_Atari_versions_-_untested_for_3.6.4)
pcmain.c NH_filestag=(file_for_MSDOS,_OS/2,_Amiga,_and_Atari_versions_-_untested_for_3.6.5)
pcsys.c NH_filestag=(file%s_for_MSDOS,_OS/2_and_Atari_versions_-_tested_on_MSDOS_for_3.6.4_via_partial_cross-compile_only)
pcsys.c NH_filestag=(file%s_for_MSDOS,_OS/2_and_Atari_versions_-_tested_on_MSDOS_for_3.6.5_via_partial_cross-compile_only)
pcunix.c NH_filestag=>pcsys.c
NetHack.cnf NH_filestag=(file_for_MSDOS,_OS/2,_and_Atari_versions_-_untested_for_3.6.4)
NetHack.cnf NH_filestag=(file_for_MSDOS,_OS/2,_and_Atari_versions_-_untested_for_3.6.5)
pctty.c NH_filestag=>NetHack.cnf
ioctl.c NH_filestag=(file%s_for_UNIX_and_Be_versions)

View File

@@ -26,8 +26,8 @@ home directory you might perform these steps.
If you have old record and logfile entries from a previous NetHack version,
you might want to save copies before they get overwritten by the new empty
files; old saved games and bones files from 3.6.0 through to 3.6.3 should
work with 3.6.4 but even older saved games and bones files from 3.4.3 will
files; old saved games and bones files from 3.6.0 through to 3.6.4 should
work with 3.6.5 but even older saved games and bones files from 3.4.3 will
not. If you are installing from the RPM, there is no need to save the old
record and logfile; they are automatically preserved.

View File

@@ -95,7 +95,7 @@ MAXPLAYERS=10
# Only available if NetHack was compiled with DUMPLOG
# Allows following placeholders:
# %% literal '%'
# %v version (eg. "3.6.4-0")
# %v version (eg. "3.6.5-0")
# %u game UID
# %t game start time, UNIX timestamp format
# %T current time, UNIX timestamp format

View File

@@ -1,4 +1,4 @@
*.ce NHSUBST
*.mak NHSUBST
*.bat NHSUBST
* NH_filestag=(file%s_for_Windows_CE_and_PocketPC_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_Windows_CE_and_PocketPC_-_untested_for_3.6.5)

View File

@@ -1 +1 @@
* NH_filestag=(header_file%s_for_Windows_CE_and_PocketPC_-_untested_for_3.6.4)
* NH_filestag=(header_file%s_for_Windows_CE_and_PocketPC_-_untested_for_3.6.5)

View File

@@ -284,8 +284,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,6,4,0
PRODUCTVERSION 3,6,4,0
FILEVERSION 3,6,5,0
PRODUCTVERSION 3,6,5,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x9L
@@ -300,17 +300,17 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "NetHack 3.6.4 for Windows CE\0"
VALUE "Comments", "NetHack 3.6.5 for Windows CE\0"
VALUE "CompanyName", " \0"
VALUE "FileDescription", "nethackm\0"
VALUE "FileVersion", "3, 6, 4, 0\0"
VALUE "FileVersion", "3, 6, 5, 0\0"
VALUE "InternalName", "nethackm\0"
VALUE "LegalCopyright", "Copyright © 1985-2019\0"
VALUE "LegalCopyright", "Copyright © 1985-2020\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "nethackm.exe\0"
VALUE "PrivateBuild", "090914\0"
VALUE "ProductName", "NetHack\0"
VALUE "ProductVersion", "3, 6, 4, 0\0"
VALUE "ProductVersion", "3, 6, 5, 0\0"
VALUE "SpecialBuild", "\0"
END
END

View File

@@ -260,8 +260,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,6,4,0
PRODUCTVERSION 3,6,4,0
FILEVERSION 3,6,5,0
PRODUCTVERSION 3,6,5,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x9L
@@ -276,17 +276,17 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "NetHack 3.6.4 for Smartphone 2002\0"
VALUE "Comments", "NetHack 3.6.5 for Smartphone 2002\0"
VALUE "CompanyName", " \0"
VALUE "FileDescription", "nethackm\0"
VALUE "FileVersion", "3, 6, 4, 0\0"
VALUE "FileVersion", "3, 6, 5, 0\0"
VALUE "InternalName", "nethackm\0"
VALUE "LegalCopyright", "Copyright © 1985-2019\0"
VALUE "LegalCopyright", "Copyright © 1985-2020\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "nethackm.exe\0"
VALUE "PrivateBuild", "090914\0"
VALUE "ProductName", "NetHack For Smartphone\0"
VALUE "ProductVersion", "3, 6, 4, 0\0"
VALUE "ProductVersion", "3, 6, 5, 0\0"
VALUE "SpecialBuild", "\0"
END
END

View File

@@ -16,7 +16,7 @@ contributed the port.
Alex Kompel, Dion Nicolaas, Yitzhak Sapir, Derek S. Ray, Michael Allison,
Pasi Kallinen, Bart House, and Janet Walz contributed to the maintainance
of the tty and graphical windows versions of NetHack 3.6.4.
of the tty and graphical windows versions of NetHack 3.6.5.
You can build a TTY version of NetHack and a Windows Graphical
version. You can use one of the following build environments:
@@ -151,7 +151,7 @@ a 32-bit x86 version, or a 64-bit x64 version. The default Makefile
is set up for a 32-bit x86 version, but that's only because it will
run on the most number of existing Windows environments.
NetHack's save files and bones files in the 3.6.4 release have not yet
NetHack's save files and bones files in the 3.6.5 release have not yet
evolved enough to allow them to interchange between the 32-bit version
and the 64-bit version (or between different platforms). Hopefully
that will change in an upcoming release.
@@ -164,7 +164,7 @@ I. Dispelling the Myths:
We have provided a Makefile for each of the following compilers:
o Microsoft Visual Studio 2015 or 2017 C++ Compiler
o Microsoft Visual Studio 2017 or 2019 C++ Compiler
The Community Editions are fine and available at no cost
o MinGW 2.0 (with GCC 3.2)

View File

@@ -1,5 +1,5 @@
NAME NETHACK
DESCRIPTION 'NetHack 3.6.4 for Windows'
DESCRIPTION 'NetHack 3.6.5 for Windows'
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE DISCARDABLE

View File

@@ -53,7 +53,7 @@
#endif
#if defined(UNIX) && !defined(LINT) && !defined(GCC_WARN)
static const char SCCS_Id[] UNUSED = "@(#)makedefs.c\t3.7\t2019/12/17";
static const char SCCS_Id[] UNUSED = "@(#)makedefs.c\t3.7\t2020/01/18";
#endif
/* names of files to be generated */

View File

@@ -1 +1 @@
* NH_filestag=(file%s_for_GEM_versions_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_GEM_versions_-_untested_for_3.6.5)

View File

@@ -1 +1 @@
* NH_filestag=(file%s_for_GNOME_versions_-_untested_for_3.6.4)
* NH_filestag=(file%s_for_GNOME_versions_-_untested_for_3.6.5)

View File

@@ -339,7 +339,7 @@ BEGIN
VALUE "FileDescription", "NetHack for Windows - Graphical Interface"
VALUE "FileVersion", "3.7.0"
VALUE "InternalName", "NetHackW"
VALUE "LegalCopyright", "Copyright (C) 1985 - 2019. By Stichting Mathematisch Centrum and M. Stephenson. See license for details."
VALUE "LegalCopyright", "Copyright (C) 1985 - 2020. By Stichting Mathematisch Centrum and M. Stephenson. See license for details."
VALUE "OriginalFilename", "NetHackW.exe"
VALUE "PrivateBuild", "140606"
VALUE "ProductName", "NetHack"

View File

@@ -2318,7 +2318,7 @@ logDebug(const char *fmt, ...)
/* Reading and writing settings from the registry. */
#define CATEGORYKEY "Software"
#define COMPANYKEY "NetHack"
#define PRODUCTKEY "NetHack 3.6.4"
#define PRODUCTKEY "NetHack 3.6.5"
#define SETTINGSKEY "Settings"
#define MAINSHOWSTATEKEY "MainShowState"
#define MAINMINXKEY "MainMinX"

View File

@@ -79,7 +79,7 @@ BEGIN
VALUE "FileDescription", "NetHack for Windows - TTY Interface"
VALUE "FileVersion", "3.7.0"
VALUE "InternalName", "NetHack"
VALUE "LegalCopyright", "Copyright (C) 1985 - 2019. By Stichting Mathematisch Centrum and M. Stephenson. See license for details."
VALUE "LegalCopyright", "Copyright (C) 1985 - 2020. By Stichting Mathematisch Centrum and M. Stephenson. See license for details."
VALUE "OriginalFilename", "NetHack.exe"
VALUE "ProductName", "NetHack"
VALUE "ProductVersion", "3.7.0"