aboutsummaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-10-17 22:08:24 +0300
committerArnold D. Robbins <arnold@skeeve.com>2013-10-17 22:08:24 +0300
commita0ca839420118a77a19a8ab05d08f58a076edd17 (patch)
tree343a5e52de5171344e94415a951c1d781ff28411 /builtin.c
parent45ebe190c01c030e82483a9ef5d032aba32dad1f (diff)
downloadegawk-a0ca839420118a77a19a8ab05d08f58a076edd17.tar.gz
egawk-a0ca839420118a77a19a8ab05d08f58a076edd17.tar.bz2
egawk-a0ca839420118a77a19a8ab05d08f58a076edd17.zip
Additional fix in do_rand.
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/builtin.c b/builtin.c
index 740c88b2..4f1914f4 100644
--- a/builtin.c
+++ b/builtin.c
@@ -2432,12 +2432,13 @@ do_rand(int nargs ATTRIBUTE_UNUSED)
* }
*/
- tmprand = 0.5 + ( (random()/RAND_DIVISOR + random()) / RAND_DIVISOR);
+ do {
+ tmprand = 0.5 + ( (random()/RAND_DIVISOR + random())
+ / RAND_DIVISOR);
+ tmprand -= 0.5;
+ } while (tmprand == 1.0);
- while (tmprand == 1.0)
- tmprand = 0.5 + ( (random()/RAND_DIVISOR + random()) / RAND_DIVISOR);
-
- return make_number((AWKNUM) (tmprand - 0.5));
+ return make_number((AWKNUM) tmprand);
}
/* do_srand --- seed the random number generator */