BSD 4_3_Reno release
[unix-history] / usr / src / lib / libc / stdlib / rand.c
index 1968372..da3734b 100644 (file)
@@ -1,13 +1,41 @@
-/* @(#)rand.c  4.1 (Berkeley) %G% */
-static long    randx = 1;
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that: (1) source distributions retain this entire copyright
+ * notice and comment, and (2) distributions including binaries display
+ * the following acknowledgement:  ``This product includes software
+ * developed by the University of California, Berkeley and its contributors''
+ * in the documentation or other materials provided with the distribution
+ * and in all advertising materials mentioning features or use of this
+ * software. Neither the name of the University nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
 
 
-srand(x)
-unsigned x;
+#if defined(LIBC_SCCS) && !defined(lint)
+static char sccsid[] = "@(#)rand.c     5.3 (Berkeley) 5/15/90";
+#endif /* LIBC_SCCS and not lint */
+
+#include <sys/types.h>
+#include <sys/stdc.h>
+#include <stdlib.h>
+
+static u_long next = 1;
+
+int
+rand()
 {
 {
-       randx = x;
+       return ((next = next * 1103515245 + 12345) % RAND_MAX);
 }
 
 }
 
-rand()
+void
+srand(seed)
+u_int seed;
 {
 {
-       return((randx = randx * 1103515245 + 12345) & 0x7fffffff);
+       next = seed;
 }
 }