--- ray/src/rt/devmain.c 1990/03/06 17:44:44 1.10 +++ ray/src/rt/devmain.c 1991/11/12 17:09:01 2.1 @@ -57,6 +57,7 @@ char *argv[]; if ((dev = dinit(argv[0], argv[3])) == NULL) quit(1); putw(COM_RECVM, devout); /* verify initialization */ + sendstate(); fflush(devout); /* loop on requests */ while ((com = getc(devin)) != EOF) { @@ -106,10 +107,7 @@ r_flush() /* flush output */ if (dev->flush != NULL) (*dev->flush)(); putc(COM_FLUSH, devout); - fwrite((char *)&dev->pixaspect, sizeof(dev->pixaspect), 1, devout); - putw(dev->xsiz, devout); - putw(dev->ysiz, devout); - putw(dev->inpready, devout); + sendstate(); fflush(devout); } @@ -156,7 +154,7 @@ r_comin() /* read string from command line */ /* reply */ putc(COM_COMIN, devout); myputs(buf, devout); - putw(dev->inpready, devout); + sendstate(); fflush(devout); } @@ -187,15 +185,26 @@ register FILE *fp; stderr_v(s) /* put string to stderr */ register char *s; { - static int inline = 0; + static int midline = 0; - if (!inline++) { + if (!*s) + return; + if (!midline++) { fputs(progname, stderr); fputs(": ", stderr); } fputs(s, stderr); - if (*s && s[strlen(s)-1] == '\n') { + if (s[strlen(s)-1] == '\n') { fflush(stderr); - inline = 0; + midline = 0; } +} + + +sendstate() /* send driver state variables */ +{ + fwrite((char *)&dev->pixaspect, sizeof(dev->pixaspect), 1, devout); + putw(dev->xsiz, devout); + putw(dev->ysiz, devout); + putw(dev->inpready, devout); }