From 3f609bf9adbab1d127c4b75110322d4a02de3db3 Mon Sep 17 00:00:00 2001 From: nhmall Date: Mon, 14 Jan 2019 20:36:50 -0500 Subject: [PATCH] define Rand() in isaac4 config Rand() was typically defined to random() or to rand(). gcc seems to provide a random() to link to on linux when sys/share/random.c is linked in, but other platforms such as Windows got an undefined refence to random() when RANDOM wasn't defined. The only direct use seems to be in get_rnd_txt() these days, in rumors.c Under the USE_ISAAC64 config, neither srandom() nor srand() are being invoked to seed those routines, and it really should be using isaac64 when USE_ISAAC64 is defined anyway. --- include/ntconf.h | 14 +++++++++----- include/os2conf.h | 5 ++++- include/pcconf.h | 6 +++++- include/unixconf.h | 5 +++++ include/vmsconf.h | 4 ++++ include/wceconf.h | 7 ++++++- 6 files changed, 33 insertions(+), 8 deletions(-) diff --git a/include/ntconf.h b/include/ntconf.h index b681680d2..f7e8ca9cd 100644 --- a/include/ntconf.h +++ b/include/ntconf.h @@ -7,9 +7,6 @@ /* #define SHELL */ /* nt use of pcsys routines caused a hang */ -/* #define RANDOM */ /* have Berkeley random(3) */ -#define USE_ISAAC64 - #define TEXTCOLOR /* Color text */ #define EXEPATH /* Allow .exe location to be used as HACKDIR */ @@ -37,8 +34,9 @@ /*#define CHANGE_COLOR*/ /* allow palette changes */ #define SELECTSAVED /* Provide menu of saved games to choose from at start */ - + #define SYS_RANDOM_SEED /* Use random seed derived from CNG */ + /* * ----------------------------------------------------------------- * The remaining code shouldn't need modification. @@ -182,12 +180,18 @@ extern void FDECL(interject, (int)); #include #define USE_STDARG -#ifdef RANDOM + /* Use the high quality random number routines. */ +#ifdef USE_ISAAC64 +#define Rand() rn2(RAND_MAX) +#else +#define RANDOM +#ifdef RANDOM #define Rand() random() #else #define Rand() rand() #endif +#endif #include #define FCMASK (_S_IREAD | _S_IWRITE) /* file creation mask */ diff --git a/include/os2conf.h b/include/os2conf.h index f033ef584..cde929982 100644 --- a/include/os2conf.h +++ b/include/os2conf.h @@ -78,12 +78,15 @@ #include /* the high quality random number routines */ - +#ifdef USE_ISAAC64 +#define Rand() rn2(RAND_MAX) +#else #ifdef RANDOM #define Rand() random() #else #define Rand() rand() #endif +#endif /* file creation mask */ diff --git a/include/pcconf.h b/include/pcconf.h index c5b46bea9..9b4928831 100644 --- a/include/pcconf.h +++ b/include/pcconf.h @@ -236,12 +236,16 @@ #include #endif +/* the high quality random number routines */ +#ifdef USE_ISAAC64 +#define Rand() rn2(RAND_MAX) +#else #ifdef RANDOM -/* Use the high quality random number routines. */ #define Rand() random() #else #define Rand() rand() #endif +#endif #ifndef TOS #define FCMASK 0660 /* file creation mask */ diff --git a/include/unixconf.h b/include/unixconf.h index e4c23cd8d..c494d5307 100644 --- a/include/unixconf.h +++ b/include/unixconf.h @@ -347,12 +347,17 @@ #endif /* Use the high quality random number routines. */ +/* the high quality random number routines */ +#ifdef USE_ISAAC64 +#define Rand() rn2(RAND_MAX) +#else #if defined(BSD) || defined(LINUX) || defined(ULTRIX) || defined(CYGWIN32) \ || defined(RANDOM) || defined(__APPLE__) #define Rand() random() #else #define Rand() lrand48() #endif +#endif #ifdef TIMED_DELAY #if defined(SUNOS4) || defined(LINUX) || (defined(BSD) && !defined(ULTRIX)) diff --git a/include/vmsconf.h b/include/vmsconf.h index dfee1cb42..1c6ea27f9 100644 --- a/include/vmsconf.h +++ b/include/vmsconf.h @@ -243,6 +243,9 @@ typedef __mode_t mode_t; #define rindex strrchr /* Use the high quality random number routines. */ +#ifdef USE_ISAAC64 +#define Rand() rn2(RAND_MAX) +#else #if defined(RANDOM) #define Rand() random() /* VMS V7 adds these entry points to DECC$SHR; stick with the nethack-supplied @@ -255,6 +258,7 @@ typedef __mode_t mode_t; #else #define Rand() rand() #endif +#endif #define SYS_RANDOM_SEED #ifndef __GNUC__ diff --git a/include/wceconf.h b/include/wceconf.h index 7ab03f672..bc6492ab9 100644 --- a/include/wceconf.h +++ b/include/wceconf.h @@ -141,12 +141,17 @@ #define index strchr #define rindex strrchr #define USE_STDARG -#ifdef RANDOM + /* Use the high quality random number routines. */ +#ifdef USE_ISAAC64 +#define Rand() rn2(RAND_MAX) +#else +#ifdef RANDOM #define Rand() random() #else #define Rand() rand() #endif +#endif #define FCMASK 0660 /* file creation mask */ #define regularize nt_regularize