version 1.33, 2011/09/28 19:27:18 |
version 1.34, 2013/09/29 15:42:25 |
|
|
/* #endif */ |
/* #endif */ |
|
|
jmp_buf env; |
jmp_buf env; |
int use_arc4 = 1; |
int use_srandom; |
extern int pairstack[]; |
extern int pairstack[]; |
extern Awkfloat srand_seed; |
extern Awkfloat srand_seed; |
|
|
|
|
u = (Awkfloat) system(getsval(x)) / 256; /* 256 is unix-dep */ |
u = (Awkfloat) system(getsval(x)) / 256; /* 256 is unix-dep */ |
break; |
break; |
case FRAND: |
case FRAND: |
if (use_arc4) |
if (use_srandom) |
u = (Awkfloat)arc4random() / 0xffffffff; |
|
else |
|
u = (Awkfloat) (random() % RAND_MAX) / RAND_MAX; |
u = (Awkfloat) (random() % RAND_MAX) / RAND_MAX; |
|
else |
|
u = (Awkfloat)arc4random() / 0xffffffff; |
break; |
break; |
case FSRAND: |
case FSRAND: |
if (isrec(x)) /* no argument provided, want arc4random() */ |
if (isrec(x)) /* no argument provided, want arc4random() */ |
use_arc4 = 1; |
use_srandom = 0; |
else { |
else { |
use_arc4 = 0; |
use_srandom = 1; |
u = getfval(x); |
u = getfval(x); |
tmp = u; |
tmp = u; |
srandom((unsigned int) u); |
srandom((unsigned int) u); |