--- ray/src/rt/devmain.c 1990/02/22 12:45:25 1.9 +++ ray/src/rt/devmain.c 1990/03/22 20:58:09 1.12 @@ -57,9 +57,7 @@ char *argv[]; if ((dev = dinit(argv[0], argv[3])) == NULL) quit(1); putw(COM_RECVM, devout); /* verify initialization */ - fwrite((char *)&dev->pixaspect, sizeof(dev->pixaspect), 1, devout); - putw(dev->xsiz, devout); - putw(dev->ysiz, devout); + sendstate(); fflush(devout); /* loop on requests */ while ((com = getc(devin)) != EOF) { @@ -109,7 +107,7 @@ r_flush() /* flush output */ if (dev->flush != NULL) (*dev->flush)(); putc(COM_FLUSH, 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,24 @@ register FILE *fp; stderr_v(s) /* put string to stderr */ register char *s; { - static int inline = 0; + static int midline = 0; - if (!inline++) { + if (!midline++) { fputs(progname, stderr); fputs(": ", stderr); } fputs(s, stderr); if (*s && 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); }