summaryrefslogtreecommitdiff
path: root/libinterp/alt.c
diff options
context:
space:
mode:
Diffstat (limited to 'libinterp/alt.c')
-rw-r--r--libinterp/alt.c9
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);
}