--- ray/src/rt/rtrace.c 1992/11/19 20:26:10 2.10 +++ ray/src/rt/rtrace.c 1993/03/08 12:37:33 2.13 @@ -75,6 +75,7 @@ static RAY thisray; /* for our convenience */ static int oputo(), oputd(), oputv(), oputl(), oputL(), oputp(), oputn(), oputN(), oputs(), oputw(), oputm(); +static int ourtrace(), tabin(); static int (*ray_out[10])(), (*every_out[10])(); static int castonly; @@ -86,6 +87,10 @@ static int (*putreal)(); quit(code) /* quit program */ int code; { +#ifndef NIX + headclean(); /* delete header file */ + pfclean(); /* clean up persist files */ +#endif exit(code); } @@ -135,8 +140,11 @@ char *fname; default: error(CONSISTENCY, "botched output format"); } - if (hresolu > 0 && vresolu > 0) - fprtresolu(hresolu, vresolu, stdout); + if (hresolu > 0) { + if (vresolu > 0) + fprtresolu(hresolu, vresolu, stdout); + fflush(stdout); + } /* process file */ while (getvec(orig, inform, fp) == 0 && getvec(direc, inform, fp) == 0) { @@ -161,16 +169,18 @@ char *fname; if (--vcount == 0) /* check for end */ break; } + fflush(stdout); if (vcount > 0) error(USER, "read error"); - fclose(fp); + if (fname != NULL) + fclose(fp); } setoutput(vs) /* set up output tables */ register char *vs; { - extern int ourtrace(), (*trace)(); + extern int (*trace)(); register int (**table)() = ray_out; castonly = 1;