--- ray/src/px/pvalue.c 1993/11/09 15:21:00 2.7 +++ ray/src/px/pvalue.c 1994/10/06 13:27:16 2.9 @@ -91,9 +91,8 @@ char **argv; if (argv[i+1][0] == '-' || argv[i+1][0] == '+') d = pow(2.0, d); if (argv[i][0] == '-') - doexposure = 100; + expval *= d; scalecolor(exposure, d); - expval *= d; doexposure++; i++; break; @@ -199,10 +198,14 @@ unkopt: setmode(fileno(fin), O_BINARY); #endif /* get header */ - if (header && checkheader(fin, fmtid, stdout) < 0) { - fprintf(stderr, "%s: wrong input format\n", progname); - quit(1); - } + if (header) { + if (checkheader(fin, fmtid, stdout) < 0) { + fprintf(stderr, "%s: wrong input format\n", + progname); + quit(1); + } + } else + newheader("RADIANCE", stdout); /* get resolution */ if ((resolution && !fgetsresolu(&picres, fin)) || picres.xr <= 0 || picres.yr <= 0) { @@ -211,7 +214,7 @@ unkopt: } /* add to header */ printargs(i, argv, stdout); - if (doexposure > 100) + if (expval < .99 || expval > 1.01) fputexpos(expval, stdout); fputformat(COLRFMT, stdout); putchar('\n'); @@ -236,7 +239,7 @@ unkopt: } if (header) { printargs(i, argv, stdout); - if (doexposure > 100) + if (expval < .99 || expval > 1.01) fputexpos(expval, stdout); fputformat(fmtid, stdout); putchar('\n'); @@ -257,10 +260,9 @@ char *line; double d; COLOR ctmp; - if (isformat(line)) { - formatval(fmt, line); + if (formatval(fmt, line)) wrongformat = strcmp(fmt, COLRFMT); - } else if (original && isexpos(line)) { + else if (original && isexpos(line)) { d = 1.0/exposval(line); scalecolor(exposure, d); doexposure++;