Commit Graph

499 Commits

Author SHA1 Message Date
nhmall
1d7ee022e6 remove outdated header files from Xcode project 2020-05-23 14:08:45 -04:00
nhmall
305ad3c58e remove outdated Xcode references 2020-05-23 14:00:34 -04:00
nhmall
e726bfe98a Xcode bit 2020-05-23 13:52:17 -04:00
PatR
ed5a2ea11e unix/Makefile.top bit
Guard against SYSCFLAGS someday containing space-separated tokens.
2020-05-19 11:07:48 -07:00
nhmall
696aaf8b8d remove added hints file
append the -fno-common to the existing Makefile
2020-05-18 23:24:29 -04:00
nhmall
98ba1bdf20 travis update - have a build with and without -fno-common 2020-05-18 22:49:05 -04:00
nhmall
ee41403af2 add -fno-common build to travis 2020-05-18 22:39:49 -04:00
PatR
ce5eebcb9b fix lua tmpname() vs mkstemp() on linux
Avoid the warning that tmpname should be replaced by mkstemp by
replacing tmpname with mkstemp.  lua has code to do that but it isn't
trivial to activate while leaving the lua distribution unmodified.
[I've no idea whether nethack's usage even results in liblua ever
creating any temporary files.]

Using nethack's hints to pass -DLUA_USE_POSIX from top Makefile to
lib/lua-$(LUA_VERSION)/Makefile has been tested, building liblua.a
on linux with that has not.
2020-05-18 12:01:23 -07:00
PatR
b42535fb2c add "ec2-user" to sysconf's list of generic users
Pull request #330 would add "ec2" ("ec2-user" after dash and whatever
follows has been stripped off) to GENERICUSERS for Amazon Linux.  Now
that dashes-in-username handling has been fixed, that doesn't need to
be obscure and the full user name can be included instead.

I also added a commented out entry for PORTABLE_DEVICE_PATHS to the
default sysconf, then cloned that for Windows' sysconf.template.

Fixes #330
2020-05-15 13:49:11 -07:00
PatR
41ae223585 hyphenated Unix user names
Fix for $USER, $LOGNAME, getlogin() values that have dashes in them:
keep dash and whatever follows as part of the name instead of stripping
it off for role/race/gender/alignment.

Before:
% USER=test-bar-fem ./nethack
|Shall I pick your female Barbarian's race and alignment for you?
and character ended up named 'test'.

After:
% USER=test-bar-fem ./nethack
|Shall I pick character's race, role, gender and alignment for you?
and character ends up named 'test-bar-fem'.  However,
% ./nethack -u test-bar-fem
still behaves like the 'before' case.
|Shall I pick your female Barbarian's race and alignment for you?

Dash handling is only changed when the dash comes from user name (or
from envionment overriding user name), not from direct player input
or run-time config file.
2020-05-12 16:38:12 -07:00
nhmall
c2fa3c36d8 dependency bit 2020-05-09 18:19:56 -04:00
nhmall
c831522e94 Xcode fixes 2020-05-06 11:35:55 -04:00
nhmall
cdf280628c split symbols bits from drawing.c; new file src/symbols.c 2020-05-06 10:55:54 -04:00
PatR
6b2fcd7d73 X11 missing prototypes
Add some prototypes and add a new include to a couple of files that
use config.h instead of hack.h.  So sys/unix/Makefile.src has been
changed slightly.
2020-04-24 02:40:22 -07:00
Pasi Kallinen
9b74ea0b22 Shaped and themed rooms
Allows creating shaped or themed rooms for the Dungeons of Doom
via lua script.

Invalidates bones and saves.

Makefiles updated for unix/linux by adding themerms.lua, but other
OSes need to have that added.
2020-04-18 19:55:09 +03:00
Pasi Kallinen
5f9714bf92 Remove workarounds for ancient compilers 2020-04-03 08:21:08 +03:00
Pasi Kallinen
fcfa5dc267 Fail fetch-lua in Unix Makefile more gracefully
If missing curl or failing to download the lua tarball,
don't try to untar the nonexistent file.
2020-03-07 22:38:33 +02:00
nhmall
2af37f44d4 Merge March 2020 changes into NetHack 3.7 2020-03-06 10:59:50 -05:00
nhmall
abdd3254ae updates for 3.6 March 2020 2020-03-04 10:41:57 -05:00
nhmall
68fdc3bbcb February 2020 options.c overhaul
combine boolean and compound options into a single allopt[] array for
processing in options.c.

move the definitions of the options into new include/optlist.h file which
uses a set of macros to define them appropriately.

during compile of options.c each option described in include/optlist.h:
   1. automatically results in a function prototype for an optfn called
      optfn_xxxx (xxxx is the option name).
   2. automatically results in an opt_xxxx enum value for referencing
      its index throughout options.c (xxxx is the option name).
   3. is used to initialize an element of the allopt[] array at index
      opt_xxxx (xxxx is the option name) based on the settings in the
      NHOPTB, NHOPTC, NHOPTP macros. Those macros only live during the
      compilation of include/optlist.h.

each optfn_xxxx() function can be called with a req id of: do_init, do_set,
get_val or do_handler.

req do_init is called from options_init, and if initialization or memory
allocation or other initialization for that particular option is needed,
it can be done in response to the init req.

req do_set is called from parseoptions() for each option it encounters
and the optfn_xxxx() function is expected to react and set the option
based on the string values that parseoptions() passes to it.

req get_val expects each optfn_xxxx() function to write the current
option value into the buffer it is passed.

req do_handler is called during doset() operations in response to player
selections most likely from the 'O' option-setting menu, but only if the
option is identified as having do_handler support in the allopts[]
'has_handler' boolean flag. Not every optfn_xxxx() does.

function special_handling() is eliminated. It's code has been redistributed
to individual handler functions for the option or purpose that they serve.

moved reglyph_darkroom() function from options.c to display.c
2020-02-26 00:24:37 -05:00
PatR
91b569e6c4 Guidebook.dat, one-page edition of Guidebook.txt
Update sys/unix/Makefile.doc to be able to build Guidebook.dat, an
unpaginated copy of the plain text Guidebook.  It's generated from
the 'roff source rather than by attempting to post-process the
regular text Guidebook.

No doubt there are easier ways to do this.
2020-02-14 18:15:25 -08:00
nhmall
c234f5a97d version bit 2020-02-04 07:57:43 -05:00
nhmall
f41e0b9eec add recent file addition to Xcode project 2020-02-02 20:43:00 -05:00
PatR
70611afc48 splitting cmd.c, phase I
Preparation for moving enlightenment and conduct into new source
file insight.c.  Right now it's a stub that shouldn't break anything
whether included or omitted.  Once makefiles and project files have
been updated to compile and link it, the actual code will be moved.

unix/Makefile.src has been updated;
vms/Makefile.src and vmsbuild.com have been updated but not tested.
2020-02-01 08:59:19 -08:00
PatR
a219eed6eb 'make depend' for unix/Makefile.src
Add the new header file to HACKINCL which only matters to HSOURCES
which only matters for the 'tags' target.

'make depend' reordered some stuff that could have stayed as-is but
also found a missing dependency for nhlobj.{c,o}.
2020-01-29 12:16:24 -08:00
nhmall
e39ec5ce3e rename new header file to fnamesiz.h
Changes to be committed:
renamed:    include/filesize.h -> include/fnamesiz.h
2020-01-29 09:56:43 -05:00
nhmall
209fab138b recover fix
recover had deviated somewhat from NetHack in its
file expectations:
1) A couple of 3.7 fields needed to be accommodated.
2) hard-coded file size values had deviated.

The file sizes are now in an added header file named "filesize.h",
which is included at the bottom of config.h.

There will likely be another commit to write the filename size ahead
of the file name so that the precise number of characters can be read,
but since that will break existing saves, it can go in along with another
save-breaking commit.

This commit doesn't not alter savefiles written by nethack so does not
require an editlevel bump. It does alter the read-in expectation in
recover to match the game and this get recover working again.
2020-01-29 09:15:55 -05:00
nhmall
82bfec24f9 update some version bits 2020-01-28 19:09:40 -05:00
nhmall
47b18d7bde Merge 'NetHack-3.6' changes into NetHack-3.7-Jan2020 2020-01-25 22:17:42 -05:00
PatR
2b5dc80278 unix 'make clean' update
Remove dat/gitinfo.txt which has been getting overlooked.
Hardly urgent, but useful if this is the last 3.5.x release.
2020-01-25 12:08:28 -08:00
nhmall
24f2e098c5 Xcode build fixes 2020-01-25 12:34:06 -05:00
nhmall
36bb4334e8 Merge fixes from 'NetHack-3.6' into NetHack-3.7-Jan2020 2020-01-20 21:33:20 -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
d5174323eb Merge 'NetHack-3.6' updates into NetHack-3.7-Jan2020 2020-01-14 22:09:29 -05:00
nhmall
a6c46bbd85 housekeeping items for 3.6.5 - first pass 2020-01-14 11:35:06 -05:00
nhmall
d7e3331129 remove a few obsolete notes 2019-12-28 16:35:26 -05:00
PatR
9b9925828a Unix Makefile.utl
Build feedback filtered by a script which filters out -Dthis -Wthat:
gcc -g -I../include -I../lib/lua-/src -c ../win/share/tilemap.c

The second -I is obsolete or else its bogus value would have caused
build failure.  When removing it, I noticed that there was still quite
a bit of obsolete yacc and lex stuff in there.  Remove that too.
2019-12-21 16:57:53 -08:00
nhmall
17feb01d8f Merge branch 'NetHack-3.6' 2019-12-17 14:39:15 -05:00
nhmall
74a5339a5e housekeeping updates for 3.6.4
typos

README update
2019-12-17 14:11:52 -05:00
nhmall
d952eea4eb Merge branch 'NetHack-3.6' 2019-12-15 14:55:53 -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
nhmall
480c3eb6e0 include/lev.h is an empty header file so just get rid of it 2019-12-14 17:18:48 -05:00
nhmall
f4720edfbf include/qtext.h is an empty header so just get rid of it 2019-12-14 12:31:29 -05:00
nhmall
2dad98d55e Xcode updates 2019-12-14 10:53:12 -05:00
Pasi Kallinen
7043e2134a Lua NetHack obj bindings 2019-12-11 20:10:59 +02:00
PatR
1c30c437c3 'make' => 'make all'
In sys/unix/Makefile.{top,src}, move the 'all' target first so that
it's the default if no target is specified.  Recent lua handling
unintentionally broke that for Makefile.top by putting 'lua_support'
target in front of 'all'.
2019-12-09 15:02:30 -08:00
PatR
2fe31eec46 more Qt rename
In order for 'make depend' to be able to handle both Qt4/5 and Qt3,
they need to operate on different object file names.

renames qt*.o to qt3*.o for Qt3
renames qt*.cpp to qt3*.cpp for Qt3 (not essential but seems worthwhile)
moves Qt3's headers from include/qt*.h to win/Qt3/qt3*.h
copies include/qt_xpms.h (before rename) or win/Qt3/qt3_xpms.h (after)
    to win/Qt/qt_xpms.h so that Qt4/5 no longer shares one header file
modifies win/Qt3/*.cpp and win/Qt3/qt3_win.h to reflect new header names
modifies Makefile.src to have Qt3 'moc' commands use new names
updates Makefile.src via re-running 'make depend'

'make depend' was only looking at include/*.h to find nested inclusion.
Now it will also look at win/*/*.h.  That found a bunch of missing
dependencies for the old gnome sources and a few for Qt3.

Building without Qt still works.  Building with it (any version) has
not been tested.
2019-12-09 11:15:49 -08:00
Patric Mueller
b9f3a33ec9 Update depend.awk for the new Qt location and lua headers 2019-12-08 14:41:54 +01:00
nhmall
bc8c1f8f56 remove field-level savefile code 2019-12-08 07:27:01 -05:00
PatR
9318bb816b 'make depend' update for sys/unix/Makefile.src
I deleted three lines
  ../include/../lib/lua-5.3.5/src/lua.h \
  ../include/../lib/lua-5.3.5/src/lualib.h \
  ../include/../lib/lua-5.3.5/src/lauxlib.h \
from $(CONFIG_H) but other than that, this is as-is with unmodified
'make depend'.  depend.awk will need to be taught about suppressing
those lua headers.
2019-12-07 17:06:07 -08:00