aboutsummaryrefslogtreecommitdiff
path: root/src/shuf.c
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-08-22 20:09:13 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-08-22 20:09:13 +0200
commit65c411dcb3fd33122cbc314ca5b2a94542bc1e87 (patch)
treec329b4eeaf67f08ddc8030e0cc9eefb4a57801ae /src/shuf.c
parentc40f79737a4ce6ae0cd8bd6ea7f302217333e486 (diff)
downloadcoreutils-65c411dcb3fd33122cbc314ca5b2a94542bc1e87.tar.gz
coreutils-65c411dcb3fd33122cbc314ca5b2a94542bc1e87.tar.bz2
coreutils-65c411dcb3fd33122cbc314ca5b2a94542bc1e87.zip
Added shuf with trand
Diffstat (limited to 'src/shuf.c')
-rw-r--r--src/shuf.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/shuf.c b/src/shuf.c
index 5b4808a..e97f1f0 100644
--- a/src/shuf.c
+++ b/src/shuf.c
@@ -8,6 +8,10 @@
#include <errno.h>
#include <limits.h>
+#ifdef USE_TRAND
+# include "trand.h"
+#endif
+
#define NUMBER_LEN(x) strlen(#x);
static char *g_name = "shuf";
@@ -192,7 +196,11 @@ int main(int argc, char **argv)
}
for (size_t i = lines.len - 1; i > 0; i--)
{
+#ifndef USE_TRAND
size_t j = rand() % i;
+#else
+ size_t j = trand() % i;
+#endif
char *tmp = lines.data[i];
lines.data[i] = lines.data[j];
lines.data[j] = tmp;