Use more portable random seed generation.
The new function md_random_seed() has replaced time() + getpid() and similar methods. Putting everything in mdport.c slightly reduces the warnings and workarounds.
This commit is contained in:
parent
c194ec3dc9
commit
62047972cc
29 changed files with 123 additions and 81 deletions
|
|
@ -47,8 +47,6 @@ int
|
|||
main(int argc, char *argv[], char *envp[])
|
||||
{
|
||||
register char *env;
|
||||
int lowtime;
|
||||
time_t now;
|
||||
#ifdef PC7300
|
||||
int hardwindow; /* Do we have a hardware window? */
|
||||
#endif
|
||||
|
|
@ -179,10 +177,9 @@ main(int argc, char *argv[], char *envp[])
|
|||
if (argc == 2)
|
||||
if (!restore(argv[1], envp)) /* Note: restore will never return */
|
||||
exit(1);
|
||||
lowtime = (int) time(&now);
|
||||
dnum = (wizard && getenv("SEED") != NULL ?
|
||||
atoi(getenv("SEED")) :
|
||||
lowtime + getpid());
|
||||
md_random_seed());
|
||||
if (wizard)
|
||||
printf("Hello %s, welcome to dungeon #%d\n", whoami, dnum);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@
|
|||
#include <limits.h>
|
||||
#include <sys/stat.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
|
||||
#define MOD_MOVE(c) (toupper(c) )
|
||||
|
||||
|
|
@ -1214,3 +1215,16 @@ md_readchar(WINDOW *win)
|
|||
|
||||
return(ch & 0x7F);
|
||||
}
|
||||
|
||||
unsigned int
|
||||
md_random_seed(void)
|
||||
{
|
||||
unsigned int seed;
|
||||
seed = (unsigned int) time((time_t *) NULL);
|
||||
#ifdef _WIN32
|
||||
seed += _getpid();
|
||||
#else
|
||||
seed += getpid();
|
||||
#endif
|
||||
return seed;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1418,6 +1418,7 @@ int md_killchar(void);
|
|||
long md_memused(void);
|
||||
int md_normaluser(void);
|
||||
int md_rand(void);
|
||||
unsigned int md_random_seed(void);
|
||||
void md_reopen_score(void);
|
||||
int md_readchar(WINDOW *win);
|
||||
int md_shellescape(void);
|
||||
|
|
|
|||
|
|
@ -254,7 +254,7 @@ restore(char *file, char *envp[])
|
|||
setup();
|
||||
clearok(curscr, TRUE);
|
||||
touchwin(cw);
|
||||
srand(getpid());
|
||||
srand(md_random_seed());
|
||||
playit();
|
||||
/*NOTREACHED*/
|
||||
return(0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue