]> code.delx.au - gnu-emacs/blobdiff - lib-src/yow.c
*** empty log message ***
[gnu-emacs] / lib-src / yow.c
index 05ec9d4341523c7cc4aae12b7efb0f10f3cdabc2..9d58ce5aecb352f21bf9a3cf1d688b88f46f3281 100644 (file)
@@ -1,15 +1,35 @@
 /*
  * yow.c
- * 
+ *
  * Print a quotation from Zippy the Pinhead.
  * Qux <Kaufman-David@Yale> March 6, 1986
- * 
+ *
+ * This file is in the public domain because the author published it
+ * with no copyright notice before the US signed the Bern Convention.
+ *
  * With dynamic memory allocation.
  */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <stdio.h>
 #include <ctype.h>
-#include <../src/paths.h>      /* For PATH_DATA.  */
+#ifdef TIME_WITH_SYS_TIME
+#include <sys/time.h>
+#include <time.h>
+#else
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#else
+#include <time.h>
+#endif
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include "epaths.h"            /* For PATH_DATA.  */
 
 #define BUFSIZE  80
 #define SEP      '\0'
@@ -30,6 +50,9 @@
     &res;})
 #endif
 
+void yow();
+void setup_yow();
+
 int
 main (argc, argv)
      int argc;
@@ -37,7 +60,6 @@ main (argc, argv)
 {
   FILE *fp;
   char file[BUFSIZ];
-  void yow(), setup_yow();
 
   if (argc > 2 && !strcmp (argv[1], "-f"))
     strcpy (file, argv[2]);
@@ -49,17 +71,18 @@ main (argc, argv)
 #endif
 
   if ((fp = fopen(file, "r")) == NULL) {
+    fprintf(stderr, "yow: ");
     perror(file);
-    exit(1);
+    exit(EXIT_FAILURE);
   }
 
   /* initialize random seed */
-  srand((int) (getpid() + time((long *) 0)));
+  srand((int) (getpid() + time((time_t *) 0)));
 
   setup_yow(fp);
   yow(fp);
   fclose(fp);
-  return 0;
+  return EXIT_SUCCESS;
 }
 
 static long len = -1;
@@ -80,17 +103,17 @@ setup_yow(fp)
    * we explicitly skip that. */
   while ((c = getc(fp)) != SEP) {
     if (c == EOF) {
-      fprintf(stderr, "File contains no separators.\n");
+      fprintf(stderr, "yow: file contains no separators\n");
       exit(2);
     }
   }
   header_len = ftell(fp);
   if (header_len > AVG_LEN)
     header_len -= AVG_LEN;     /* allow the first quotation to appear */
-       
+
   if (fseek(fp, 0L, 2) == -1) {
-    perror("fseek 1");
-    exit(1);
+    perror("yow");
+    exit(EXIT_FAILURE);
   }
   len = ftell(fp) - header_len;
 }
@@ -105,12 +128,11 @@ yow (fp)
   int c, i = 0;
   char *buf;
   unsigned int bufsize;
-  char *malloc(), *realloc();
 
   offset = rand() % len + header_len;
   if (fseek(fp, offset, 0) == -1) {
-    perror("fseek 2");
-    exit(1);
+    perror("yow");
+    exit(EXIT_FAILURE);
   }
 
   /* Read until SEP, read next line, print it.
@@ -132,22 +154,22 @@ yow (fp)
   }
 
   bufsize = BUFSIZE;
-  buf = malloc(bufsize);
+  buf = (char *) malloc(bufsize);
   if (buf == (char *)0) {
-    fprintf(stderr, "can't allocate any memory\n");
+    fprintf(stderr, "yow: virtual memory exhausted\n");
     exit (3);
   }
 
   buf[i++] = c;
   while ((c = getc(fp)) != SEP && c != EOF) {
     buf[i++] = c;
-       
+
     if (i == bufsize-1) {
       /* Yow! Is this quotation too long yet? */
       bufsize *= 2;
-      buf = realloc(buf, bufsize);
+      buf = (char *) realloc(buf, bufsize);
       if (buf == (char *)0) {
-       fprintf(stderr, "can't allocate more memory\n");
+       fprintf(stderr, "yow: virtual memory exhausted\n");
        exit (3);
       }
     }
@@ -156,3 +178,7 @@ yow (fp)
   printf("%s\n", buf);
 }
 
+/* arch-tag: e40fc0df-bafb-4001-af24-5c883d1c685e
+   (do not change this comment) */
+
+/* yow.c ends here */