From 64427872e9a259dab9e2b27dd6e3e1f430c06274 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 3 Jul 2017 12:35:14 +1200 Subject: Work around mawk's srand() behaviour Specific values for these tasks get chosen way more often than other in mawk, and it seems to be caused by the random seed being above a certain value. Not sure if it's a bug or how it interacts with the POSIX standard, but this seems to fix it. --- games/pks.awk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'games') diff --git a/games/pks.awk b/games/pks.awk index b71d2dc4..1a441980 100644 --- a/games/pks.awk +++ b/games/pks.awk @@ -12,10 +12,13 @@ BEGIN { ARGV[1] = "/usr/share/dict/words" } - # Seed the random number generator + # Get a random seed if rnds(1df) available rnds = "rnds 2>/dev/null" rnds | getline seed close(rnds) + + # Truncate the seed to 8 characters because mawk might choke on it + seed = substr(seed,1,8) if (length(seed)) srand(seed + 0) else -- cgit v1.2.3