--- ray/src/px/pflip.c 1991/11/11 14:02:02 1.5 +++ ray/src/px/pflip.c 1992/10/28 11:23:22 2.3 @@ -1,4 +1,4 @@ -/* Copyright (c) 1991 Regents of the University of California */ +/* Copyright (c) 1992 Regents of the University of California */ #ifndef lint static char SCCSid[] = "$SunId$ LBL"; @@ -10,6 +10,10 @@ static char SCCSid[] = "$SunId$ LBL"; #include +#ifdef MSDOS +#include +#endif + #include "color.h" #include "resolu.h" @@ -27,7 +31,9 @@ FILE *fin; /* input file */ char *progname; +extern char *malloc(); + int neworder() /* figure out new order from old */ { @@ -51,7 +57,11 @@ int argc; char *argv[]; { int i; - +#ifdef MSDOS + extern int _fmode; + _fmode = O_BINARY; + setmode(fileno(stdout), O_BINARY); +#endif progname = argv[0]; for (i = 1; i < argc; i++) @@ -118,13 +128,14 @@ scanfile() /* scan to the end of file */ memerr(); if ((scanin = (COLR *)malloc(xres*sizeof(COLR))) == NULL) memerr(); - for (y = yres-1; y >= 0; y--) { + for (y = yres-1; y > 0; y--) { scanpos[y] = ftell(fin); if (freadcolrs(scanin, xres, fin) < 0) { fprintf(stderr, "%s: read error\n", progname); exit(1); } } + scanpos[0] = ftell(fin); free((char *)scanin); } @@ -160,5 +171,6 @@ flip() /* flip the picture */ } } free((char *)scanin); - free((char *)scanout); + if (fhoriz) + free((char *)scanout); }