diff options
Diffstat (limited to 'libinterp/alt.c')
| -rw-r--r-- | libinterp/alt.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/libinterp/alt.c b/libinterp/alt.c index 61bda2e3..75749e19 100644 --- a/libinterp/alt.c +++ b/libinterp/alt.c @@ -268,7 +268,7 @@ xecalt(int block) Alt *a; Prog *p; int nrdy; - static int xrand = -1; + static ulong xrand = 0x20342; p = currun(); @@ -288,10 +288,7 @@ xecalt(int block) return; } - xrand += xrand; - if(xrand < 0) - xrand ^= 0x88888EEF; - - altcomm(a, xrand%nrdy); + xrand = xrand*1103515245 + 12345; + altcomm(a, (xrand>>8)%nrdy); altdone(a, p, nil, -1); } |
