simplify get_macos_uuid()

also remove a magic number 37 by replacing it with NHUUIDSZ
This commit is contained in:
nhmall
2026-04-30 09:27:50 -04:00
parent c5b258c2cf
commit 319dd38873
4 changed files with 13 additions and 34 deletions
+1 -1
View File
@@ -1175,7 +1175,7 @@ struct instance_globals_saved_n {
/* dungeon.c */ /* dungeon.c */
int n_dgns; /* number of dungeons (also used in mklev.c and do.c) */ int n_dgns; /* number of dungeons (also used in mklev.c and do.c) */
/* files.c */ /* files.c */
char nhuuid[37]; char nhuuid[NHUUIDSZ];
/* mkroom.c */ /* mkroom.c */
int nroom; int nroom;
/* region.c */ /* region.c */
+4
View File
@@ -709,6 +709,10 @@ enum nhcb_calls {
NUM_NHCB NUM_NHCB
}; };
#ifdef NHUUID
#define NHUUIDSZ 37
#endif
struct plinemsg_type { struct plinemsg_type {
xint16 msgtype; /* one of MSGTYP_foo */ xint16 msgtype; /* one of MSGTYP_foo */
struct nhregex *regex; struct nhregex *regex;
+5 -28
View File
@@ -4,7 +4,6 @@
#include "hack.h" #include "hack.h"
void free_macos_uuid(void);
void get_macos_uuid(char *); void get_macos_uuid(char *);
#ifdef DEBUG #ifdef DEBUG
@@ -14,44 +13,22 @@ void get_macos_uuid(char *);
/* #import <Foundation/Foundation.h> */ /* #import <Foundation/Foundation.h> */
#import <AppKit/AppKit.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;
}
}
void void
get_macos_uuid(char *target) get_macos_uuid(char *target)
{ {
NSString *uuidString = [[NSUUID UUID] UUIDString]; NSString *uuidString = [[NSUUID UUID] UUIDString];
const char *str_uuid, *src; const char *str_uuid;
char *dst;
int i; int i;
if (macos_uuid)
free_macos_uuid();
/* str_uuid = [uuidString cStringUsingEncoding:NSUTF8StringEncoding]; */ /* str_uuid = [uuidString cStringUsingEncoding:NSUTF8StringEncoding]; */
str_uuid = [uuidString cStringUsingEncoding:NSASCIIStringEncoding]; str_uuid = [uuidString cStringUsingEncoding:NSASCIIStringEncoding];
macos_uuid = dupstr(str_uuid);
if (macos_uuid) { if (str_uuid && target) {
src = macos_uuid; for (i = 0; i < (NHUUIDSZ -1 ); ++i) {
dst = target; target[i] = str_uuid[i];
for (i = 0; i < 36; ++i) {
*dst = *src;
++src;
++dst;
} }
dst[36] = '\0'; target[(NHUUIDSZ - 1)] = '\0';
} }
free_macos_uuid();
macos_uuid = 0;
return; return;
} }
+3 -5
View File
@@ -843,15 +843,13 @@ sys_random_seed(void)
#if defined(MACOS) && defined(NHUUID) #if defined(MACOS) && defined(NHUUID)
extern void get_macos_uuid(char *); /* sys/unix/macuuid.m */ extern void get_macos_uuid(char *); /* sys/unix/macuuid.m */
extern void free_macos_uuid(void); /* sys/unix/macuuid.m */
#endif #endif
void void
get_nhuuid(void) get_nhuuid(void)
{ {
#if defined(NHUUID) #if defined(NHUUID)
char struuid[37] = { 0 }; char struuid[NHUUIDSZ] = { 0 };
char *struuidptr = &struuid[0];
#if defined(LINUX) && defined(NHUUID) #if defined(LINUX) && defined(NHUUID)
uuid_t binuuid; uuid_t binuuid;
#endif #endif
@@ -866,8 +864,8 @@ get_nhuuid(void)
uuid_unparse(binuuid, struuid); uuid_unparse(binuuid, struuid);
#endif /* MACOS || LINUX */ #endif /* MACOS || LINUX */
if (*struuidptr) if (struuid[0])
Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuidptr); Snprintf(svn.nhuuid, sizeof svn.nhuuid, "%s", struuid);
#endif /* NHUUID */ #endif /* NHUUID */
} }