]> code.delx.au - gnu-emacs/blobdiff - lib-src/yow.c
(Program Modes): Replace inforef to emacs-xtra by conditional xref's, depending
[gnu-emacs] / lib-src / yow.c
index b67d2f1eeee5e7c61bc241fb76b94b3cdde22f40..18f0f7b2e13440058365e88c1c6a6d2b2e2fe085 100644 (file)
@@ -1,18 +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'
@@ -33,8 +50,6 @@
     &res;})
 #endif
 
-char *malloc(), *realloc();
-
 void yow();
 void setup_yow();
 
@@ -58,16 +73,16 @@ main (argc, argv)
   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;
@@ -89,16 +104,16 @@ setup_yow(fp)
   while ((c = getc(fp)) != SEP) {
     if (c == EOF) {
       fprintf(stderr, "yow: file contains no separators\n");
-      exit(2);
+      exit(EXIT_FAILURE);
     }
   }
   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("yow");
-    exit(1);
+    exit(EXIT_FAILURE);
   }
   len = ftell(fp) - header_len;
 }
@@ -117,7 +132,7 @@ yow (fp)
   offset = rand() % len + header_len;
   if (fseek(fp, offset, 0) == -1) {
     perror("yow");
-    exit(1);
+    exit(EXIT_FAILURE);
   }
 
   /* Read until SEP, read next line, print it.
@@ -139,27 +154,32 @@ yow (fp)
   }
 
   bufsize = BUFSIZE;
-  buf = malloc(bufsize);
+  buf = (char *) malloc(bufsize);
   if (buf == (char *)0) {
     fprintf(stderr, "yow: virtual memory exhausted\n");
-    exit (3);
+    exit (EXIT_FAILURE);
   }
 
   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, "yow: virtual memory exhausted\n");
-       exit (3);
+       exit (EXIT_FAILURE);
       }
     }
   }
   buf[i++] = 0;
   printf("%s\n", buf);
+  free (buf);
 }
 
+/* arch-tag: e40fc0df-bafb-4001-af24-5c883d1c685e
+   (do not change this comment) */
+
+/* yow.c ends here */