--- ray/src/px/oki20c.c 1992/07/03 10:46:25 2.8 +++ ray/src/px/oki20c.c 1992/09/21 12:13:38 2.9 @@ -9,34 +9,44 @@ static char SCCSid[] = "$SunId$ LBL"; */ #include +#ifdef MSDOS +#include +#endif #include "color.h" #include "resolu.h" -#define NROWS 1440 /* 10" at 144 dpi */ -#define NCOLS 960 /* 8" at 120 dpi */ +#define NROWS 1440 /* 10" at 144 dpi */ +#define NCOLS 960 /* 8" at 120 dpi */ -#define ASPECT (120./144.) /* pixel aspect ratio */ +#define ASPECT (120./144.) /* pixel aspect ratio */ -#define FILTER "pfilt -1 -x %d -y %d -p %f %s",NCOLS,NROWS,ASPECT +#define FILTER "pfilt -1 -x %d -y %d -p %f %s",NCOLS,NROWS,ASPECT /* - * Subtractive primaries are ordered: Yellow, Magenta, Cyan. + * Subtractive primaries are ordered: Yellow, Magenta, Cyan. */ -#define sub_add(sub) (2-(sub)) /* map subtractive to additive pri. */ +#define sub_add(sub) (2-(sub)) /* map subtractive to additive pri. */ long lpat[NCOLS][3]; int dofilter = 0; /* filter through pfilt first? */ +extern FILE *popen(); + main(argc, argv) int argc; char *argv[]; { int i, status = 0; - +#ifdef MSDOS + extern int _fmode; + _fmode = O_BINARY; + setmode(fileno(stdin), O_BINARY); + setmode(fileno(stdout), O_BINARY); +#endif if (argc > 1 && !strcmp(argv[1], "-p")) { dofilter++; argv++; argc--; @@ -146,9 +156,9 @@ int y; } for (i = 0; i < len; i++) { c = lpat[i][j] | colbit(scan[i],i,j); - putchar(c>>16); - putchar(c>>8 & 255); - putchar(c & 255); + putchar((int)(c>>16)); + putchar((int)(c>>8 & 255)); + putchar((int)(c & 255)); if (y) /* repeat this row */ lpat[i][j] = (c & 1) << 23; else /* or clear for next image */