Fixed seeding of random number generator.
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 3 Feb 2004 11:01:23 +0000 (11:01 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Tue, 3 Feb 2004 11:01:23 +0000 (11:01 +0000)
doc/Makefile.am
src/ChangeLog
src/random.c
src/set.q

index 0f9ca9a9a7af157b5c78196415ac6b6c1475fc93..15ea655767998e8bdaae9ed4ad72c5869b55a0e5 100644 (file)
@@ -4,4 +4,5 @@ info_TEXINFOS = pspp.texi
 
 EXTRA_DIST = pspp.man
 
-MAINTAINERCLEANFILES = Makefile.in README.html pspp.info pspp.info-*
+CLEANFILES = pspp.info pspp.info-*
+MAINTAINERCLEANFILES=Makefile.in README.html
index 61713e2a8bfb46c4fbf930f4e6f79916cc360bbf..b4e2d9542a2256726750a7e7de231cfc2e604a82 100644 (file)
@@ -1,3 +1,9 @@
+
+Tue Feb  3 18:56:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+       * random.c (rng_create): Fixed seeding so that it gets reseeded after
+       SET seed=xx has been called.
+
 Mon Jan 19 14:08:09 2004  Ben Pfaff  <blp@gnu.org> 
 
        * random.c (rng_get_double): Fix always-returning-zero bug in my
index 20a70fae6ee3cb8f1303fa04b00a02f0a8709aaf..cae3f9e70a3fb9f0f05411bfa3114509d9fd768c 100644 (file)
@@ -49,12 +49,13 @@ rng_create (void)
   static time_t t=0;
 
   rng = xmalloc (sizeof *rng);
-  if (t == 0 || set_seed == NOT_LONG)
+  if (t == 0 || set_seed_used)
   {
     if (set_seed == NOT_LONG) 
       time (&t);
     else
       t = set_seed;
+    set_seed_used=0;
   }
   else
     t++;
index c4f80326b905f95507e34a65eb19cd8f961a03f1..89d7ce2c494fb05a4f07b19793ded7a20e86bf29 100644 (file)
--- a/src/set.q
+++ b/src/set.q
@@ -114,6 +114,7 @@ int set_safer;
 int set_scompression;
 int set_screen;
 long set_seed;
+int set_seed_used;
 int set_testing_mode;
 int set_undefined;
 int set_viewlength;
@@ -616,6 +617,7 @@ stc_custom_seed (struct cmd_set *cmd unused)
       set_seed = tokval;
       lex_get ();
     }
+  set_seed_used=1;
   return 1;
 }