--- ray/src/px/pfilt.c 1993/06/25 15:01:17 2.9 +++ ray/src/px/pfilt.c 1993/09/21 10:55:54 2.11 @@ -53,6 +53,8 @@ double spread = 1e-4; /* spread for star points */ char *tfname = NULL; +char template[] = TEMPLATE; + char *lampdat = "lamp.tab"; /* lamp data file */ int order; /* scanline ordering of input */ @@ -100,7 +102,7 @@ char **argv; if (signal(SIGINT, quit) == SIG_IGN) signal(SIGINT, SIG_IGN); if (signal(SIGHUP, quit) == SIG_IGN) - signal(SIGINT, SIG_IGN); + signal(SIGHUP, SIG_IGN); signal(SIGTERM, quit); signal(SIGPIPE, quit); #ifdef SIGXCPU @@ -227,7 +229,7 @@ char **argv; if (singlepass) fin = stdin; else { - tfname = mktemp(TEMPLATE); + tfname = mktemp(template); if ((fin = fopen(tfname, "w+")) == NULL) { fprintf(stderr, "%s: can't create ", progname); fprintf(stderr, "temp file \"%s\"\n", tfname); @@ -443,31 +445,28 @@ scan2init() /* prepare scanline arrays */ } barsize = 2*yrad + 1; scanin = (COLOR **)malloc(barsize*sizeof(COLOR *)); + if (scanin == NULL) + goto memerr; for (i = 0; i < barsize; i++) { scanin[i] = (COLOR *)malloc(xres*sizeof(COLOR)); - if (scanin[i] == NULL) { - fprintf(stderr, "%s: out of memory\n", progname); - quit(1); - } + if (scanin[i] == NULL) + goto memerr; } if (obarsize > 0) { scoutbar = (COLOR **)malloc(obarsize*sizeof(COLOR *)); greybar = (float **)malloc(obarsize*sizeof(float *)); + if (scoutbar == NULL | greybar == NULL) + goto memerr; for (i = 0; i < obarsize; i++) { scoutbar[i] = (COLOR *)malloc(ncols*sizeof(COLOR)); greybar[i] = (float *)malloc(ncols*sizeof(float)); - if (scoutbar[i] == NULL | greybar[i] == NULL) { - fprintf(stderr, "%s: out of memory\n", - progname); - quit(1); - } + if (scoutbar[i] == NULL | greybar[i] == NULL) + goto memerr; } } else { scanout = (COLOR *)malloc(ncols*sizeof(COLOR)); - if (scanout == NULL) { - fprintf(stderr, "%s: out of memory\n", progname); - quit(1); - } + if (scanout == NULL) + goto memerr; } /* record pixel aspect ratio */ if (!correctaspect) { @@ -488,6 +487,10 @@ scan2init() /* prepare scanline arrays */ printf("\n"); /* write out resolution */ fputresolu(order, ncols, nrows, stdout); + return; +memerr: + fprintf(stderr, "%s: out of memory\n", progname); + quit(1); }