cleaned up input (checking for EOF)
authorDave Slattengren <slatteng@ucbvax.Berkeley.EDU>
Thu, 15 Mar 1984 09:45:25 +0000 (01:45 -0800)
committerDave Slattengren <slatteng@ucbvax.Berkeley.EDU>
Thu, 15 Mar 1984 09:45:25 +0000 (01:45 -0800)
SCCS-vsn: local/ditroff/ditroff.old.okeeffe/driver/dip.c 1.7

usr/src/local/ditroff/ditroff.old.okeeffe/driver/dip.c

index a3517e6..cd85458 100644 (file)
@@ -1,4 +1,4 @@
-/*     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
  */
@@ -300,7 +300,8 @@ register FILE *fp;
                        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);
@@ -382,13 +383,12 @@ register FILE *fp;
                        t_page(n);
                        break;
                case 'n':       /* end of line */
                        t_page(n);
                        break;
                case 'n':       /* end of line */
-                       while (getc(fp) != '\n')
-                               ;
                        hpos = 0;
                        hpos = 0;
-                       break;
+
                case '#':       /* comment */
                case '#':       /* comment */
-                       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;