simplify get_macos_uuid()
also remove a magic number 37 by replacing it with NHUUIDSZ
This commit is contained in:
+1
-1
@@ -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 */
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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 */
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user