--- ray/src/util/rmtxop.c 2014/09/18 23:20:12 2.5 +++ ray/src/util/rmtxop.c 2016/08/18 17:57:57 2.10 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: rmtxop.c,v 2.5 2014/09/18 23:20:12 greg Exp $"; +static const char RCSid[] = "$Id: rmtxop.c,v 2.10 2016/08/18 17:57:57 greg Exp $"; #endif /* * General component matrix operations. @@ -10,6 +10,7 @@ static const char RCSid[] = "$Id: rmtxop.c,v 2.5 2014/ #include "rtio.h" #include "resolu.h" #include "rmatrix.h" +#include "platform.h" #define MAXCOMP 50 /* #components we support */ @@ -22,7 +23,6 @@ typedef struct { int op; /* '*' or '+' */ } ROPERAT; /* matrix operation */ -int outfmt = DTfromHeader; /* output format */ int verbose = 0; /* verbose reporting? */ static void @@ -165,6 +165,7 @@ get_factors(double da[], int n, char *av[]) int main(int argc, char *argv[]) { + int outfmt = DTfromHeader; RMATRIX *mres = NULL; ROPERAT op; int i; @@ -231,13 +232,10 @@ main(int argc, char *argv[]) if (mres == NULL) /* check that we got something */ goto userr; /* write result to stdout */ -#ifdef getc_unlocked - flockfile(stdout); -#endif -#ifdef _WIN32 + if (outfmt == DTfromHeader) + outfmt = mres->dtype; if (outfmt != DTascii) - _setmode(fileno(stdout), _O_BINARY); -#endif + SET_FILE_BINARY(stdout); newheader("RADIANCE", stdout); printargs(argc, argv, stdout); if (!rmx_write(mres, outfmt, stdout)) {