Commit Graph

2452 Commits

Author SHA1 Message Date
PatR
1d0e4729bd 'make depend' again
Having source files with the same name in different subdirectories
won't work because their object files would conflict, but don't allow
the failure to be because depend.awk left out the conflicting rules.

No change in behavior from the most recent commit.
2023-10-14 14:36:42 -07:00
PatR
db48b92dd3 avoid redundant unix dependency for tile.o 2023-10-14 13:48:47 -07:00
PatR
284452796c redo tty resizing
Rest of 'not PR #1102'.  Resizing the terminal while getpos was in
operation recalculated the map from scratch instead of redrawing what
the core considers to already be shown.  And it was always operating
while an asynchronous signal was excuting which could potentially
clobber whatever was running at the time the signal arrived.

This uses same redrawing as the prior '^R during getpos()' fix.  It
also only performs the resize while tty_nhgetch() is waiting for
input.  If that is the situation at the time that the signal arrives
then it will resize immediately (while in the asynchronous signal
handler); if not, it will set a flag and tty_nhgetch() will do the
resize the next time it gets called.

This builds with TTY_PERM_INVENT enabled and doesn't seem to be any
worse than before, but there are bugs with that.  The only way I could
get perminv to appear was to save and restore, then perm_invent was
honored for both RC file and mO command.  And once I managed to get it
to display, moving an item from a lower case slot to slot 'A', made
that item vanish; nothing appeared in the invent's right hand panel.

Both of those misbehaviors already happen prior to this commit.  I
also saw an abort+panictrace if I resized while at the "Dump core?"
prompt when running the pre-commit code and didn't see that with the
post-commit code (although the prompt wasn't shown so I couldn't tell
that it was waiting for an answer).  The abort probably sounds scarier
than it warrants; I suspect that the pre-commit code just treated the
resize as answering 'y' for some reason, possibly a stale value in the
variable it uses.
2023-10-12 18:45:14 -07:00
nhmall
e5c6bf8ec0 update tested versions of Visual Studio 2023-10-11 2023-10-11 19:52:40 -04:00
nhmall
50b213bdc5 update dependencies in Makefile.nmake Oct 2, 2023 2023-10-02 07:50:42 -04:00
PatR
4df37c1eb2 unix 'make depend' update
Mostly seems to be a different order of #include in hack.h and/or its
descendants but I didn't investigate.
2023-10-01 13:59:13 -07:00
nhmall
cf3cbcf832 attempt to fix github issue #1104 gui build curses
Check for pdcursesmod explicitly, since it is require for
curses support under the NetHackW gui version

Closes #1104
2023-09-30 10:20:27 -04:00
nhmall
e1e9a2f364 avoid crash upon exit under Windows with curses 2023-09-24 11:34:58 -04:00
nhmall
69afa93cb3 visual studio subproject build order
pdcursesgui.lib must be built before nethackw.exe
pdcurses.lib must be built before nethack.exe
2023-09-23 16:02:34 -04:00
nhmall
44ecbb2a1b some work on conditional components in vs build 2023-09-23 15:26:09 -04:00
nhmall
384d726b9c adjust some fmod integration bits 2023-09-23 10:01:37 -04:00
nhmall
14faa682c4 improve selectsave handling for Windows
If there were outdated savefiles encountered during
startup, each individual one was getting a wait_synch
that required a <return> even though a message window
wasn't being used at that point.

Allow suppression of the individual per-file wait_synch()
calls on Windows, so that a single one can be done once
the selectsave processing is overwith.

This was a little messy because an indicator had to flow
down through validate(), uptodate(), etc.

There shouldn't be any change in how things behave on
any non-Windows platforms.
2023-09-22 15:14:53 -04:00
nhmall
0c2004c0d1 visual studio build with curses wide support 2023-09-21 16:50:58 -04:00
nhmall
61cc98af3c quiet a couple of Windows warnings 2023-09-21 16:31:34 -04:00
nhmall
49c7a136c8 fix a symbols file issue encountered under Windows 2023-09-21 15:12:34 -04:00
MrEveryDay98
6164357ed9 Added FMOD library support (needs work)
removed extra initializer
fmod.c int to int32_t
fmod support now functional
Added snd_lib check in windmain
fmod_ambience func for future implementation
updated some funcs
(CAN'T BUILD) -- static'd vars
2023-09-16 11:37:56 -04:00
nhmall
499a3654e5 typo fix in Makefile.nmake for 3rd party soundlib 2023-09-16 09:03:42 -04:00
nhmall
8845ead907 update tested versions of Visual Studio 2023-09-14 2023-09-14 10:18:07 -04:00
nhkeni
b75bc87662 Improve run fetch-lua required message - it has to be run in top. 2023-09-07 12:17:53 -04:00
nhkeni
385d860bef Merge branch 'keni-crashweb3' into NetHack-3.7 2023-09-06 12:39:17 -04:00
nhkeni
8c095b009a Add CRASHREPORT, show contact form on panic/impossible
When calling panic() or impossible(), create the option
of opening a browser window with most of the fields
already populated.  Code for MacOS and linux is included;
other ports are affected by argument change to early_init
which are done but not tested.

To enable, define CRASHREPORT in config.h and set
CRASHREPORTURL in sysconf to (for the moment at least)
http[s]://www.nethack.org/common/contactcr.html

Adds --grep-defined option to makedefs for Makefiles.

Adds "bid" (binary identifier), an MD4 of the main nethack
binary.  This is ONLY for helping (in the future) contact.html
to set the "NetHack from" field automatically for our own
binaries.  This can be faked, but the user can lie so nothing
lost.  There's nothing magic about MD4; other ports can use
anything that prodcues a long apparently random string we can
match against.

- new option --bidshow for us to get the MD4 of a
  released binary so I can add it to the website.
  Only available in wizard mode and not in nethack.6.
- typo macos -> macosx in hints file

No support for packaging builds as I'm not sure what that
would look like.

Adds a javascript helper for MacOS.
Adds a lua helper for linux (and builds and installs
 nhlua).
2023-09-06 12:27:13 -04:00
nhkeni
87434a49ab Merge branch 'keni-luacksum2' into NetHack-3.7 2023-09-06 12:20:02 -04:00
nhkeni
1a2836577b check the checksum for Lua in "make fetch-lua"
Works for MacOS and linux.
2023-09-06 12:15:54 -04:00
PatR
6bb9b8a955 missing dependency in sys/unix/Makefile.utl
The dependencies in util/Makefile duplicate those in src/Makefile for
objects.o and monst.o but the latter got changed last year and the
change wasn't replicated.
2023-08-29 11:38:06 -07:00
nhkeni
06a3bd0424 mac: don't fail "make install" if SHELLDIR already exists 2023-08-28 19:18:36 -04:00
nhmall
f625d2efcf more tabs to spaces 2023-08-16 10:22:10 -04:00
nhmall
1a99c9382e Qt6 on Linux Makefile tweak 2023-08-13 12:06:19 -04:00
nhmall
7b2a72d083 update tested versions of Visual Studio 2023-08-10 2023-08-10 09:49:54 -04:00
nhmall
036ad82074 doc follow-up 2023-08-08 12:49:29 -04:00
nhmall
b7c92b498d support Linux build with qt6-base-dev & qt6-multimedia-dev
There was an error:
    ../win/Qt/qt_main.cpp:767:37: error: attempt to use a deleted function
                        action->setData(actchar);
                                        ^
    /usr/include/x86_64-linux-gnu/qt6/QtCore/qvariant.h:199:5: note: 'QVariant<char *, false>' has been explicitly marked deleted here
        QVariant(T) = delete;
        ^
    1 error generated.

I'm hoping the fix applied is the correct one for the error.
2023-08-08 12:41:44 -04:00
nhmall
025edeb443 CROSS_TO_MIPS=1 build fix 2023-08-01 10:42:20 -04:00
nhmall
536a4bd8b3 update tested versions of Visual Studio 2023-07-16 2023-07-16 12:32:42 -04:00
PatR
5d1f3e9957 github PR #1075 - same RC file for Windows
Pull request from erwinton:  the template run-time configuration file
had a MENUCOLOR pattern for cursed worn armor that didn't work.

The regular epxression containing "(being worn)" needed to quote its
parentheses.

The same fix was needed for sys/share/NetHack.cnf.

Closes #1075
2023-07-09 15:31:24 -07:00
Erwin Dondorp
024d3158cc fixed menu color for 'cursed being worn' 2023-07-09 15:12:55 -07:00
nhmall
2bba306348 default fetch-lua to https
Also add an alternative fetch-lua-http target to use http (via port 80)

Resolves #1074
2023-07-05 19:18:48 -04:00
nhmall
7c26410daf adjust hints/{linux,macOS}.370 for absence of pkg-config 2023-07-05 09:07:13 -04:00
nhmall
be1be16458 outdated file 2023-07-03 11:51:06 -04:00
nhmall
e75535497b add support for mips cross-compile to *.370 hints
Also close #1041
2023-07-03 11:44:50 -04:00
nhmall
81dedbe298 stick with submodule commit defined in repository
Use the submodule commit already defined in the repository
on submodule update, rather than pulling the most recent commit
in Makefiles.
2023-07-03 11:27:40 -04:00
nhmall
5e34883f36 windows: more setlocale 2023-07-01 09:24:57 -04:00
nhmall
52dcd101e4 windows: don't dupstr if setlocale returns NULL 2023-06-30 15:15:24 -04:00
nhmall
4d9bfccc90 update tested versions of Visual Studio 2023-06-30 2023-06-30 12:34:29 -04:00
nhmall
e1bae750de update DOS cross-compiler version 2023-06-27 10:49:35 -04:00
nhmall
47fc27d188 update for vmsbuild.com 2023-06-23 16:37:59 -04:00
nhmall
0616a83ef8 updated build command file 2023-06-23 13:25:09 -04:00
nhmall
c891066bf1 cppregex.cpp: move NetHack includes below c++ includes
Avoid a conflict with c++ std header file on at least one platform.

Build log prior:
In file included from DKA100:[DEVEL.nethack-37.sys.share]cppregex.cpp;1:12:
In file included from /SYS$COMMON/VSICXX$LIB/INCLUDE/LIB_CXX/INCLUDE/regex:768:
In file included from /SYS$COMMON/VSICXX$LIB/INCLUDE/LIB_CXX/INCLUDE/stdexcept:5
1:
In file included from /SYS$COMMON/VSICXX$LIB/INCLUDE/LIB_CXX/INCLUDE/exception:8
7:
In file included from /SYS$COMMON/VSICXX$LIB/INCLUDE/LIB_CXX/INCLUDE/cstdlib:91:
In file included from /SYS$COMMON/VSICXX$LIB/INCLUDE/LIB_CXX/INCLUDE/stdlib.h:10
3:
/SYS$COMMON/VSICXX$LIB/INCLUDE/DECC$RTLDEF/stdlib.h:200:24: error: too many argu
ments provided to function-like macro invocation
    void     abort    (void);
                       ^
../INCLUDE/vmsconf.h:307:9: note: macro 'abort' defined here
#define abort() vms_abort()             /* vmsmisc.c */
        ^
2023-06-23 13:15:01 -04:00
PatR
16d0a9e4ef vms_basename fix
vms_basename() was recently changed to take a second argument to
control whether to include the suffix portion of the name but an
existing call to set up 'hname' still had only one.

More than just adding the extra argument was needed.  It returns
a static buffer so if it got called for DEBUGFILES, 'hname' would
have been clobbered.
2023-06-22 15:59:56 -07:00
PatR
643b78bc40 vms_basename fix
vms_basename() was recently changed to take a second argument to
control whether to include the suffix portion of the name (used for
DEBUGFILES) but an existing call still had only one.
2023-06-22 15:30:27 -07:00
PatR
e5055e5f60 unix veryold(), take II
Instead of adding extra complexity to deal with something that had
become too complicated, simplify.  Having veryold() conditionally
close the lock file made sense when the usage was just
'if (veryold()) goto gotlock;' but didn't after that became
'if (veryold() && clearoldlocks()) goto gotlock;'.  Have veryold()
always leave the file open and getlock() always close it.
2023-06-18 16:29:16 -07:00
PatR
90f9b0742e unix veryold() file handling
Fix another analyzer complaint, about potentially calling close(fd)
for a file descriptor number that has already been closed.  This time
it was right, although I think nothing bad would happen if that
occurred.

With the original code, veryold() might succeed and close the file,
then clearoldlocks() fail so skip 'goto gotlock'.  Then the already
closed file would passed to close() again.

Normal usage still works.  No testing using failure conditions has
been done.
2023-06-18 14:43:43 -07:00