X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c76d4b428f0039cb4182cb6ba91fccf68b70428d..b23ef7a531da10cd87990fa903b3417e0eba3944:/lib-src/yow.c diff --git a/lib-src/yow.c b/lib-src/yow.c index b67d2f1eee..18f0f7b2e1 100644 --- a/lib-src/yow.c +++ b/lib-src/yow.c @@ -1,18 +1,35 @@ /* * yow.c - * + * * Print a quotation from Zippy the Pinhead. * Qux 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 +#endif + #include #include -#include <../src/paths.h> /* For PATH_DATA. */ +#ifdef TIME_WITH_SYS_TIME +#include +#include +#else +#ifdef HAVE_SYS_TIME_H +#include +#else +#include +#endif +#endif +#ifdef HAVE_UNISTD_H +#include +#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 */