uses random(), not rand()
authorJohn A. Kunze <jak@ucbvax.Berkeley.EDU>
Tue, 26 Mar 1985 00:59:47 +0000 (16:59 -0800)
committerJohn A. Kunze <jak@ucbvax.Berkeley.EDU>
Tue, 26 Mar 1985 00:59:47 +0000 (16:59 -0800)
SCCS-vsn: usr.bin/jot/jot.c 4.2

usr/src/usr.bin/jot/jot.c

index d148cae..21b4e5d 100644 (file)
@@ -17,6 +17,16 @@ static char sccsid[] = "@(#)jot.c    4.2     (Berkeley)      %G%";
 #define        ENDER_DEF       100
 #define        STEP_DEF        1
 
 #define        ENDER_DEF       100
 #define        STEP_DEF        1
 
+#define BSD4_2         1
+#if BSD4_2
+#define RAND           random
+#define SRAND          srandom
+long RAND();
+#else
+#define RAND           rand
+#define SRAND          srand
+#endif
+
 #define        isdefault(s)    (strcmp((s), "-") == 0)
 #define        LARGESTINT      (~ (unsigned) 0 >> 1)
 #define        CASE            break; case
 #define        isdefault(s)    (strcmp((s), "-") == 0)
 #define        LARGESTINT      (~ (unsigned) 0 >> 1)
 #define        CASE            break; case
@@ -30,6 +40,7 @@ int   boring;
 int    prec;
 int    dox;
 int    chardata;
 int    prec;
 int    dox;
 int    chardata;
+int    nofinalnl;
 
 long   reps;
 double begin;
 
 long   reps;
 double begin;
@@ -50,16 +61,17 @@ char        **argv;
        getargs(argc, argv);
        if (randomize) {
                *x = (ender - begin) * (ender > begin ? 1 : -1);
        getargs(argc, argv);
        if (randomize) {
                *x = (ender - begin) * (ender > begin ? 1 : -1);
-               srand((int) s);
+               SRAND((int) s);
                for (*i = 1; *i <= reps || infinity; (*i)++) {
                for (*i = 1; *i <= reps || infinity; (*i)++) {
-                       *y = (double) rand() / LARGESTINT;
+                       *y = (double) RAND() / LARGESTINT;
                        putdata(*y * *x + begin, reps - *i);
                }
        }
        else
                for (*i = 1, *x = begin; *i <= reps || infinity; (*i)++, *x += s)
                        putdata(*x, reps - *i);
                        putdata(*y * *x + begin, reps - *i);
                }
        }
        else
                for (*i = 1, *x = begin; *i <= reps || infinity; (*i)++, *x += s)
                        putdata(*x, reps - *i);
-       putchar('\n');
+       if (!nofinalnl)
+               putchar('\n');
 }
 
 getargs(ac, av)
 }
 
 getargs(ac, av)
@@ -77,6 +89,9 @@ char  **av;
                case 'c':
                        chardata = 1;
                        break;
                case 'c':
                        chardata = 1;
                        break;
+               case 'n':
+                       nofinalnl = 1;
+                       break;
                case 'b':
                        boring = 1;
                case 'w':
                case 'b':
                        boring = 1;
                case 'w':
@@ -263,9 +278,10 @@ char       *s;
        fprintf(stderr, msg, s);
        fprintf(stderr, "\nUsage:  jot [ options ] [ reps [ begin [ end [ s ] ] ] ]\n");
        if (strncmp("jot - ", msg, 6) == 0)
        fprintf(stderr, msg, s);
        fprintf(stderr, "\nUsage:  jot [ options ] [ reps [ begin [ end [ s ] ] ] ]\n");
        if (strncmp("jot - ", msg, 6) == 0)
-               fprintf(stderr, "Options:\n\t%s\t%s\t%s\t%s\t%s",
+               fprintf(stderr, "Options:\n\t%s\t%s\t%s\t%s\t%s\t%s",
                        "-r             random data\n",
                        "-c             character data\n",
                        "-r             random data\n",
                        "-c             character data\n",
+                       "-n             no final newline\n",
                        "-b word                repeated word\n",
                        "-w word                context word\n",
                        "-s string      data separator\n",
                        "-b word                repeated word\n",
                        "-w word                context word\n",
                        "-s string      data separator\n",