Merge branch 'NetHack-3.7' into to500

This commit is contained in:
nhmall
2026-04-30 17:09:02 -04:00
22 changed files with 242 additions and 189 deletions
@@ -209,6 +209,7 @@
F5857AA22DED026700A8CB4F /* version.c in Sources */ = {isa = PBXBuildFile; fileRef = 31B8A32721A238010055BD01 /* version.c */; };
F5857AA42DED032D00A8CB4F /* cfgfiles.c in Sources */ = {isa = PBXBuildFile; fileRef = F5857AA32DED032C00A8CB4F /* cfgfiles.c */; };
F5857AA62DED03BB00A8CB4F /* sfbase.c in Sources */ = {isa = PBXBuildFile; fileRef = F5857AA52DED03BB00A8CB4F /* sfbase.c */; };
F5E1A4CF2FA2F74C0014D115 /* macuuid.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E1A4CE2FA2F74C0014D115 /* macuuid.m */; };
F5E66A222F7D4B30000E30B7 /* earlyarg.c in Sources */ = {isa = PBXBuildFile; fileRef = F5E66A212F7D4B30000E30B7 /* earlyarg.c */; };
/* End PBXBuildFile section */
@@ -635,6 +636,7 @@
F54C1AE42E43D22A006CAA8E /* sfprocs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sfprocs.h; path = ../../include/include/sfprocs.h; sourceTree = "<group>"; };
F5857AA32DED032C00A8CB4F /* cfgfiles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = cfgfiles.c; path = ../../src/cfgfiles.c; sourceTree = "<group>"; };
F5857AA52DED03BB00A8CB4F /* sfbase.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = sfbase.c; path = ../../src/sfbase.c; sourceTree = "<group>"; };
F5E1A4CE2FA2F74C0014D115 /* macuuid.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = macuuid.m; sourceTree = "<group>"; };
F5E66A212F7D4B30000E30B7 /* earlyarg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = earlyarg.c; path = ../../src/earlyarg.c; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -695,6 +697,7 @@
3189576821A1FCC100FB2ABE = {
isa = PBXGroup;
children = (
F5E1A4CE2FA2F74C0014D115 /* macuuid.m */,
F5E66A212F7D4B30000E30B7 /* earlyarg.c */,
F50818302F6F564300D2AAFA /* iactions.c */,
F515A73B2DED0B47006E1F63 /* hacklib.c */,
@@ -1883,6 +1886,7 @@
31B8A38621A238060055BD01 /* mondata.c in Sources */,
31B8A41921A244940055BD01 /* objects.c in Sources */,
31B8A3AA21A238060055BD01 /* wizard.c in Sources */,
F5E1A4CF2FA2F74C0014D115 /* macuuid.m in Sources */,
31B8A3D021A238060055BD01 /* explode.c in Sources */,
31B8A3DE21A238060055BD01 /* sys.c in Sources */,
31B8A38021A238060055BD01 /* sit.c in Sources */,
@@ -2190,6 +2194,7 @@
"DEBUG=1",
"$(inherited)",
);
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "NHUUID=1";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_PEDANTIC = YES;
@@ -2318,6 +2323,10 @@
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5J8MP36Y73;
GCC_C_LANGUAGE_STANDARD = c99;
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
"DEBUG=1",
"$(inherited)",
);
INSTALL_PATH = "$(NH_INSTALL_DIR)";
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
OTHER_CFLAGS = (
@@ -2351,6 +2360,7 @@
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5J8MP36Y73;
GCC_C_LANGUAGE_STANDARD = c99;
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "NHUUID=1";
INSTALL_PATH = "$(NH_INSTALL_DIR)";
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
OTHER_CFLAGS = (
-4
View File
@@ -168,10 +168,6 @@ CPLUSPLUS_NEED_DEPSUPPRESS = 1
endif # WANT_WIN_QT6
endif # WANT_WIN_QT
ifdef WANT_NHUUID
USE_UUIDLIB=1
endif
ifeq "$(GIT)" "1"
ifndef GITSUBMODULES
GITSUBMODULES=1
+38 -3
View File
@@ -227,11 +227,46 @@ ifdef MAKEFILE_SRC
ifdef CURSESLIB
WINLIB += $(CURSESLIB)
endif #CURSESLIB
ifdef WANT_NHUUID
ifneq "$(NO_NHUUID)" "1"
UUID_LIB_CHECK := $(shell echo `/sbin/ldconfig -p | grep libuuid`)
#$(info UUID_LIB_CHECK=$(UUID_LIB_CHECK))
ifneq "$(UUID_LIB_CHECK)" ""
UUID_LIB=1
else
UUID_LIB=0
endif
#$(info UUID_LIB=$(UUID_LIB))
#
# check for uuid development headers
UUID_HEADERS_CHECK := $(wildcard /usr/include/uuid/uuid.h)
#$(info UUID_HEADERS_CHECK=$(UUID_HEADERS_CHECK))
ifneq "$(UUID_HEADERS_CHECK)" ""
UUID_HEADERS = 1
else
UUID_HEADERS = 0
endif
#$(info UUID_HEADERS=$(UUID_HEADERS))
ifeq "$(UUID_LIB)" "1"
ifeq "$(UUID_HEADERS)" "1"
ifndef WANT_NHUUID
WANT_NHUUID=1
endif
endif
endif
else # NO_NHUUID
WANT_NHUUID=0
endif # NO_NHUUID
ifeq "$(WANT_NHUUID)" "1"
#$(info NHUUID support will be included)
CFLAGS+= -DNHUUID
LIBS+=-luuid
endif #NHUUID
endif #MAKEFILE_SRC
else # WANT_NHUUID
$(info Attention - No NHUUID support will be included)
endif # WANT_NHUUID
endif # MAKEFILE_SRC
ifdef WANT_WIN_X11
USE_XPM=1
+9 -1
View File
@@ -216,11 +216,19 @@ LFLAGS += -framework AVFoundation
endif
ifdef MAKEFILE_SRC
ifndef NO_NHUUID
# macOS doesn't need any extra prerequisite libraries
# so do this unconditionally, unless NO_NHUUID=1 is
# passed on the Make command line.
WANT_NHUUID=1
endif #NO_NHUUID
ifdef WANT_NHUUID
CFLAGS += -DNHUUID
UUIDOBJ = macuuid.o
LFLAGS += -framework Foundation
endif
endif
endif #MAKEFILE_SRC
#
#-INCLUDE multisnd1-pre.500
+12 -20
View File
@@ -4,8 +4,7 @@
#include "hack.h"
void free_macos_uuid(void);
const char *get_macos_uuid(void);
void get_macos_uuid(char *);
#ifdef DEBUG
#undef DEBUG
@@ -14,30 +13,23 @@ const char *get_macos_uuid(void);
/* #import <Foundation/Foundation.h> */
#import <AppKit/AppKit.h>
static const char *macos_uuid = 0;
void
free_macos_uuid(void)
{
if (macos_uuid) {
free((genericptr_t) macos_uuid);
macos_uuid = 0;
}
}
const char *
get_macos_uuid(void)
get_macos_uuid(char *target)
{
NSString *uuidString = [[NSUUID UUID] UUIDString];
const char *str_uuid;
if (macos_uuid)
free_macos_uuid();
int i;
/* str_uuid = [uuidString cStringUsingEncoding:NSUTF8StringEncoding]; */
str_uuid = [uuidString cStringUsingEncoding:NSASCIIStringEncoding];
macos_uuid = dupstr(str_uuid);
return macos_uuid;
if (str_uuid && target) {
for (i = 0; i < (NHUUIDSZ -1 ); ++i) {
target[i] = str_uuid[i];
}
target[(NHUUIDSZ - 1)] = '\0';
}
return;
}
+8 -16
View File
@@ -842,19 +842,14 @@ sys_random_seed(void)
}
#if defined(MACOS) && defined(NHUUID)
extern char *get_macos_uuid(char **); /* sys/unix/macuuid.m */
extern void free_macos_uuid(void); /* sys/unix/macuuid.m */
extern void get_macos_uuid(char *); /* sys/unix/macuuid.m */
#endif
void
get_nhuuid(void)
{
#if !defined(MACOS)
#if defined(NHUUID)
char struuid[37] = { 0 };
#endif
#endif
char *struuidptr = NULL;
char struuid[NHUUIDSZ] = { 0 };
#if defined(LINUX) && defined(NHUUID)
uuid_t binuuid;
#endif
@@ -862,20 +857,17 @@ get_nhuuid(void)
if (svn.nhuuid[0])
return;
#if defined(MACOS) && defined(NHUUID)
get_macos_uuid(&struuidptr);
#elif defined(LINUX) && defined(NHUUID)
#if defined(MACOS)
get_macos_uuid(&struuid[0]);
#elif defined(LINUX)
uuid_generate_random(binuuid);
uuid_unparse(binuuid, struuid);
struuidptr = &struuid[0];
#endif /* MACOS || LINUX */
if (struuidptr)
Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuidptr);
if (struuid[0])
Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuid);
#if defined(MACOS) && defined(NHUUID)
free_macos_uuid();
#endif
#endif /* NHUUID */
}
void