ref: 49fdcd1ed465e2ad2b8622eb1647eb5e0f8d6608
parent: 80aa8bafb1d20bc0b2fea6b5c928db58a93c851f
author: Simon Tatham <[email protected]>
date: Mon May 23 08:02:37 EDT 2005
Avoid leading zeroes on internally generated random seeds, _just_ in case they confuse anyone who expects the same seed without the leading zero to be equivalent. [originally from svn r5838]
--- a/midend.c
+++ b/midend.c
@@ -135,11 +135,16 @@
/*
* Generate a new random seed. 15 digits comes to about
* 48 bits, which should be more than enough.
+ *
+ * I'll avoid putting a leading zero on the number,
+ * just in case it confuses anybody who thinks it's
+ * processed as an integer rather than a string.
*/
char newseed[16];
int i;
newseed[15] = '\0';
- for (i = 0; i < 15; i++)
+ newseed[0] = '1' + random_upto(me->random, 9);
+ for (i = 1; i < 15; i++)
newseed[i] = '0' + random_upto(me->random, 10);
sfree(me->seedstr);
me->seedstr = dupstr(newseed);