Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > d5de1c95a81d099e32798793157fd161 > files > 3

netpbm-10.47.25-1.fc14.src.rpm

--- converter/pgm/asciitopgm.c~	2011-01-01 01:58:56.000000000 -0500
+++ converter/pgm/asciitopgm.c	2011-01-17 01:20:26.720684456 -0500
@@ -55,6 +55,7 @@
     bool warned;
     int *obuf;
     const char * const usage = "[-d <val>] height width [asciifile]";
+    char trunc;
 
     pgm_init( &argc, argv );
 
@@ -112,7 +113,7 @@
         for (col = 0; col < cols; ++col) obuf[col] = 0;
     }
     grays = pgm_allocarray( cols, rows );
-    row = i = 0;
+    row = i = trunc = 0;
     while ( row < rows )
     {
         switch (c = getc (ifd))
@@ -120,6 +121,9 @@
         case EOF:
             goto line_done;
         case '\n':
+	newline:
+	    fputc(c, stderr);
+	    trunc = 0;
             if ((c = getc (ifd)) == EOF)
                 goto line_done;
             if (c == '+')
@@ -137,11 +141,24 @@
                 ++row;
                 if ( row >= rows )
                     break;
-                if (c != EOF)
+		if (c == '\n')
+		    goto newline;
+                else if (c != EOF)
                     obuf[i++] += gmap[c];
             }
             break;
         default:
+	    fputc(c, stderr);
+	    if (i == cols)
+	    {
+		if (! trunc)
+		{
+		    pm_message("Warning: row %d being truncated at %d columns",
+			       row+1, cols);
+		    trunc = 1;
+		}
+		continue;
+	    }
             if (c > 0x7f)       /* !isascii(c) */
             {
                 if (!warned)