--- ray/src/util/findglare.c 1991/11/12 17:19:13 2.1 +++ ray/src/util/findglare.c 1994/03/06 12:52:58 2.7 @@ -55,6 +55,13 @@ char *argv[]; progname = argv[0]; /* process options */ for (i = 1; i < argc && argv[i][0] == '-'; i++) { + /* expand arguments */ + while (rval = expandarg(&argc, &argv, i)) + if (rval < 0) { + fprintf(stderr, "%s: cannot expand '%s'", + argv[0], argv[i]); + exit(1); + } rval = getviewopt(&ourview, argc-i, argv+i); if (rval >= 0) { i += rval; @@ -75,7 +82,7 @@ char *argv[]; } if (argv[i][2] != 'f') goto userr; - rval = viewfile(argv[++i], &ourview, 0, 0); + rval = viewfile(argv[++i], &ourview, NULL); if (rval < 0) { fprintf(stderr, "%s: cannot open view file \"%s\"\n", @@ -105,10 +112,20 @@ char *argv[]; combine = !combine; break; case 'd': + if (argv[i][2] == 'v') { + rtargv[rtargc++] = argv[i]; + break; + } + /* FALL THROUGH */ case 'l': + case 's': + case 'P': rtargv[rtargc++] = argv[i]; rtargv[rtargc++] = argv[++i]; break; + case 'w': + rtargv[rtargc++] = argv[i]; + break; case 'a': rtargv[rtargc++] = argv[i]; if (argv[i][2] == 'v') { @@ -130,7 +147,7 @@ char *argv[]; } /* get view */ if (picture != NULL) { - rval = viewfile(picture, &pictview, 0, 0); + rval = viewfile(picture, &pictview, NULL); if (rval < 0) { fprintf(stderr, "%s: cannot open picture file \"%s\"\n", progname, picture); @@ -186,6 +203,7 @@ char *argv[]; absorb_specks(); /* eliminate tiny sources */ cleanup(); /* tidy up */ /* print header */ + newheader("RADIANCE", stdout); printargs(argc, argv, stdout); fputs(VIEWSTR, stdout); fprintview(&ourview, stdout); @@ -305,8 +323,8 @@ cleanup() /* close files, wait for children */ if (octree != NULL) done_rtrace(); if (npixinvw < 100*npixmiss) - fprintf(stderr, "%s: warning -- missing %ld%% of samples\n", - progname, 100L*npixmiss/npixinvw); + fprintf(stderr, "%s: warning -- missing %d%% of samples\n", + progname, (int)(100L*npixmiss/npixinvw)); } @@ -354,8 +372,8 @@ int x, y; xo = x-hl; else xo = 0; - disc = 1. - (double)(xo*xo + y*y)/(sampdens*sampdens); - if (disc <= FTINY) + disc = 1. - (double)((long)xo*xo + (long)y*y)/((long)sampdens*sampdens); + if (disc <= FTINY*FTINY) return(0.); return(1./(sampdens*sampdens*sqrt(disc))); }