version 1.36, 2014/12/01 03:18:50 |
version 1.37, 2014/12/08 21:50:09 |
|
|
/* #endif */ |
/* #endif */ |
|
|
jmp_buf env; |
jmp_buf env; |
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_srandom) |
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)) { |
use_srandom = 0; |
|
else { |
|
use_srandom = 1; |
|
u = getfval(x); |
u = getfval(x); |
tmp = u; |
tmp = u; |
srandom((unsigned int) u); |
srandom_deterministic((unsigned int) u); |
u = srand_seed; |
u = srand_seed; |
srand_seed = tmp; |
srand_seed = tmp; |
} |
} |