--- ray/src/px/pfilt.c 1993/06/25 15:01:17 2.9 +++ ray/src/px/pfilt.c 1995/05/31 08:50:27 2.14 @@ -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 @@ -217,9 +219,9 @@ char **argv; fprintf(stderr, "%s: unknown lamp type\n", lamptype); quit(1); } - for (i = 0; i < 3; i++) - if (lampcolor[i] > 1e-4) - colval(exposure,i) /= lampcolor[i]; + for (j = 0; j < 3; j++) + if (lampcolor[j] > 1e-4) + colval(exposure,j) /= lampcolor[j]; freelamps(); } /* open input file */ @@ -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); @@ -381,7 +383,7 @@ FILE *in; if (freadscan(scanin[yread%barsize], xres, in) < 0) { fprintf(stderr, - "%s: bad read (y=%d)\n", + "%s: truncated input (y=%d)\n", progname, yres-1-yread); quit(1); } @@ -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); }