From 532152ffc0d4dc33169b319def6119a784c10738 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sat, 25 Apr 2026 16:41:16 -0400 Subject: [PATCH] macOS follow-up --- sys/unix/Makefile.src | 4 +++- sys/unix/hints/macOS.370 | 12 ++++++++++++ sys/unix/macuuid.m | 3 +++ sys/unix/unixmain.c | 19 +++++++++++++------ 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/sys/unix/Makefile.src b/sys/unix/Makefile.src index 46dca7f71..29338e374 100644 --- a/sys/unix/Makefile.src +++ b/sys/unix/Makefile.src @@ -632,7 +632,8 @@ HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \ $(TARGETPFX)wield.o $(TARGETPFX)windows.o $(TARGETPFX)wizard.o \ $(TARGETPFX)wizcmds.o $(TARGETPFX)worm.o $(TARGETPFX)worn.o \ $(TARGETPFX)write.o $(TARGETPFX)zap.o \ - $(REGEXOBJ) $(RANDOBJ) $(SYSOBJ) $(WINOBJ) $(HINTOBJ) $(SNDLIBOBJ) \ + $(REGEXOBJ) $(RANDOBJ) $(SYSOBJ) $(WINOBJ) \ + $(HINTOBJ) $(SNDLIBOBJ) $(UUIDOBJ) \ $(TARGETPFX)version.o DATE_O = $(TARGETPFX)date.o @@ -879,6 +880,7 @@ depend2: $(WINQTMOC) @rm -f Makefile.bak @rm -f ../include/nhlua.h tile.c + # DO NOT DELETE THIS LINE OR CHANGE ANYTHING BEYOND IT # config.h timestamp diff --git a/sys/unix/hints/macOS.370 b/sys/unix/hints/macOS.370 index 02e5dbba6..9d09fed2e 100755 --- a/sys/unix/hints/macOS.370 +++ b/sys/unix/hints/macOS.370 @@ -215,6 +215,13 @@ LFLAGS += -framework AVFoundation #endif endif +ifdef MAKEFILE_SRC +ifdef WANT_NHUUID +CFLAGS += -DNHUUID +UUIDOBJ = macuuid.o +endif +endif + # #-INCLUDE multisnd1-pre.370 # @@ -547,6 +554,11 @@ checkmakefiles: endif endif +ifdef WANT_NHUUID +$(TARGETPFX)macuuid.o: ../sys/unix/macuuid.m + $(CC) $(CFLAGS) -c -o$@ $< +endif + ifdef WANT_LIBNH $(TARGETPFX)libnh.a: $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a $(AR) rcs $@ $(HOBJ) $(LIBNHSYSOBJ) ../lib/lua/liblua-$(LUA_VERSION).a diff --git a/sys/unix/macuuid.m b/sys/unix/macuuid.m index c2e742340..67a4f2486 100644 --- a/sys/unix/macuuid.m +++ b/sys/unix/macuuid.m @@ -4,6 +4,9 @@ #include "hack.h" +void free_macos_uuid(void); +const char *get_macos_uuid(void); + #ifdef DEBUG #undef DEBUG #endif diff --git a/sys/unix/unixmain.c b/sys/unix/unixmain.c index 7adf9b601..9f3507c53 100644 --- a/sys/unix/unixmain.c +++ b/sys/unix/unixmain.c @@ -840,28 +840,35 @@ sys_random_seed(void) } return seed; } + +#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 */ +#endif + void get_nhuuid(void) { +#if !defined(MACOS) char struuid[37] = { 0 }; +#endif + char *struuidptr = NULL; #if defined(LINUX) && defined(NHUUID) uuid_t binuuid; -#elif defined(MACOS) && defined(NHUUID) - char *struuid = NULL; - extern char *get_mac_uuid(char **); /* sys/unix/macuuid.m */ - extern void free_macos_uuid(void); /* sys/unix/macuuid.m */ #endif if (svn.nhuuid[0]) return; #if defined(MACOS) && defined(NHUUID) - get_mac_uuid(&struuid); + get_macos_uuid(&struuidptr); #elif defined(LINUX) && defined(NHUUID) uuid_generate_random(binuuid); uuid_unparse(binuuid, struuid); + struuidptr = &struuid[0]; #endif /* MACOS || LINUX */ - Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuid); + + Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuidptr); #if defined(MACOS) && defined(NHUUID) free_macos_uuid();