diff options
author | ache <ache@FreeBSD.org> | 1997-03-30 23:13:59 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1997-03-30 23:13:59 +0000 |
commit | f673899804337487c03c460fe7cbebca19789781 (patch) | |
tree | eca7888b1aa06eb4a51d5dd54d76bb3281c7387c /usr.bin | |
parent | 29d246343bb7aa77721c635e334f75c86cff923e (diff) | |
download | FreeBSD-src-f673899804337487c03c460fe7cbebca19789781.zip FreeBSD-src-f673899804337487c03c460fe7cbebca19789781.tar.gz |
Use srandomdev() now
Fix error with begin variable calculation
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/jot/jot.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/usr.bin/jot/jot.c b/usr.bin/jot/jot.c index 408af5c..dba1804 100644 --- a/usr.bin/jot/jot.c +++ b/usr.bin/jot/jot.c @@ -96,7 +96,11 @@ main(argc, argv) getargs(argc, argv); if (randomize) { *x = (ender - begin) * (ender > begin ? 1 : -1); - srandom((unsigned long) s); + if (s == -1.0) { + if (srandomdev() < 0) + srandom(time(NULL) ^ getpid()); + } else + srandom((unsigned long) s); for (*i = 1; *i <= reps || infinity; (*i)++) { *y = (double) random() / LONG_MAX; putdata(*y * *x + begin, reps - *i); @@ -250,7 +254,7 @@ getargs(ac, av) mask = 015; break; case 012: - s = (randomize ? time(NULL) ^ getpid() : STEP_DEF); + s = (randomize ? -1.0 : STEP_DEF); mask = 013; break; case 013: @@ -258,11 +262,12 @@ getargs(ac, av) begin = BEGIN_DEF; else if (reps == 0) error("Must specify begin if reps == 0", ""); - begin = ender - reps * s + s; + else + begin = ender - reps * s + s; mask = 0; break; case 014: - s = (randomize ? time(NULL) ^ getpid() : STEP_DEF); + s = (randomize ? -1.0 : STEP_DEF); mask = 015; break; case 015: @@ -274,7 +279,7 @@ getargs(ac, av) break; case 016: if (randomize) - s = time(NULL) ^ getpid(); + s = -1.0; else if (reps == 0) error("Infinite sequences cannot be bounded", ""); |