SCCS-vsn: local/ditroff/ditroff.old.okeeffe/driver/dip.c 1.7
-/* dip.c 1.6 (Berkeley) 84/01/03
+/* dip.c 1.7 (Berkeley) 84/03/14
* dip
* driver for impress/imagen canon laser printer
*/
* dip
* driver for impress/imagen canon laser printer
*/
put1s(str);
break;
case 'D': /* draw function */
put1s(str);
break;
case 'D': /* draw function */
- fgets(buf, sizeof(buf), fp);
+ if (fgets(buf, sizeof(buf), fp) == NULL)
+ error(FATAL, "unexpected end of input");
switch (buf[0]) {
case 'l': /* draw a line */
sscanf(buf+1, "%d %d", &n, &m);
switch (buf[0]) {
case 'l': /* draw a line */
sscanf(buf+1, "%d %d", &n, &m);
t_page(n);
break;
case 'n': /* end of line */
t_page(n);
break;
case 'n': /* end of line */
- while (getc(fp) != '\n')
- ;
- while (getc(fp) != '\n')
- ;
+ do
+ c = getc(fp);
+ while (c != '\n' && c != EOF);
break;
case 'x': /* device control */
if (devcntrl(fp)) return;
break;
case 'x': /* device control */
if (devcntrl(fp)) return;