/*
* 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'
&res;})
#endif
-char *malloc(), *realloc();
-
void yow();
void setup_yow();
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;
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;
}
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.
}
bufsize = BUFSIZE;
- buf = malloc(bufsize);
+ buf = (char *) malloc(bufsize);
if (buf == (char *)0) {
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, "yow: virtual memory exhausted\n");
exit (3);
printf("%s\n", buf);
}
+/* arch-tag: e40fc0df-bafb-4001-af24-5c883d1c685e
+ (do not change this comment) */
+
+/* yow.c ends here */