--- ray/src/px/oki20c.c 1992/01/29 15:18:20 2.3 +++ ray/src/px/oki20c.c 1992/04/18 09:10:53 2.6 @@ -49,6 +49,9 @@ char *argv[]; dofilter++; argv++; argc--; } +#ifdef _IOLBF + stdout->_flag &= ~_IOLBF; +#endif if (argc < 2) status = printp(NULL) == -1; else @@ -68,14 +71,15 @@ char *fname; int i; if (dofilter) { - if (fname == NULL) - fname = ""; - sprintf(buf, FILTER, fname); + if (fname == NULL) { + sprintf(buf, FILTER, ""); + fname = ""; + } else + sprintf(buf, FILTER, fname); if ((input = popen(buf, "r")) == NULL) { fprintf(stderr, "Cannot execute: %s\n", buf); return(-1); } - fname = buf; } else if (fname == NULL) { input = stdin; fname = ""; @@ -101,9 +105,6 @@ char *fname; fputs("\0333\042", stdout); /* clear line buffer */ clearlbuf(); -#ifdef _IOLBF - stdout->_flag &= ~_IOLBF; -#endif /* put out scanlines */ for (i = yres-1; i >= 0; i--) { if (freadcolrs(scanline, xres, input) < 0) { @@ -145,9 +146,15 @@ int y; fputs("\033\031", stdout); for (j = 0; j < 3; j++) { + i = (NCOLS + len)/2; /* center image */ fputs("\033%O", stdout); - putchar(len & 255); - putchar(len >> 8); + putchar(i & 255); + putchar(i >> 8); + while (i-- > len) { + putchar(0); + putchar(0); + putchar(0); + } for (i = 0; i < len; i++) { c = lpat[i][j] | colbit(scan[i],i,j); /* repeat this row */