Mercurial > hg > early-roguelike
comparison srogue/mdport.c @ 252:3d4252fa2ed3
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.
author | John "Elwin" Edwards |
---|---|
date | Sat, 28 Jan 2017 15:49:41 -0500 |
parents | fb25a62680c7 |
children | 8b6aba552f6f |
comparison
equal
deleted
inserted
replaced
251:e7862a021609 | 252:3d4252fa2ed3 |
---|---|
94 #include <ctype.h> | 94 #include <ctype.h> |
95 #include <fcntl.h> | 95 #include <fcntl.h> |
96 #include <limits.h> | 96 #include <limits.h> |
97 #include <sys/stat.h> | 97 #include <sys/stat.h> |
98 #include <signal.h> | 98 #include <signal.h> |
99 #include <time.h> | |
99 | 100 |
100 #if !defined(PATH_MAX) && defined(_MAX_PATH) | 101 #if !defined(PATH_MAX) && defined(_MAX_PATH) |
101 #define PATH_MAX _MAX_PATH | 102 #define PATH_MAX _MAX_PATH |
102 #endif | 103 #endif |
103 | 104 |
426 { | 427 { |
427 #ifdef HAVE_GETGID | 428 #ifdef HAVE_GETGID |
428 return( getgid() ); | 429 return( getgid() ); |
429 #else | 430 #else |
430 return(42); | 431 return(42); |
431 #endif | |
432 } | |
433 | |
434 pid_t | |
435 md_getpid(void) | |
436 { | |
437 #ifdef _WIN32 | |
438 return( _getpid() ); | |
439 #else | |
440 return( getpid() ); | |
441 #endif | 432 #endif |
442 } | 433 } |
443 | 434 |
444 char * | 435 char * |
445 md_getusername(void) | 436 md_getusername(void) |
1562 srandom(seed); | 1553 srandom(seed); |
1563 #else | 1554 #else |
1564 srand(seed); | 1555 srand(seed); |
1565 #endif | 1556 #endif |
1566 } | 1557 } |
1558 | |
1559 unsigned int | |
1560 md_random_seed(void) | |
1561 { | |
1562 unsigned int seed; | |
1563 seed = (unsigned int) time((time_t *) NULL); | |
1564 #ifdef _WIN32 | |
1565 seed += _getpid(); | |
1566 #else | |
1567 seed += getpid(); | |
1568 #endif | |
1569 return seed; | |
1570 } |