chiark / gitweb /
Avoid leading zeroes on internally generated random seeds, _just_ in
authorSimon Tatham <anakin@pobox.com>
Mon, 23 May 2005 12:02:37 +0000 (12:02 +0000)
committerSimon Tatham <anakin@pobox.com>
Mon, 23 May 2005 12:02:37 +0000 (12:02 +0000)
case they confuse anyone who expects the same seed without the
leading zero to be equivalent.

[originally from svn r5838]

midend.c

index 1d7087ac4455025aa6f39b81652bd58822f7d172..070f4f324a993f568d4e641cb13daf04f60a5fcb 100644 (file)
--- a/midend.c
+++ b/midend.c
@@ -135,11 +135,16 @@ void midend_new_game(midend_data *me)
             /*
              * 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);