(%[): Fix range handling.
authorroland <roland>
Mon, 22 Jan 1996 15:40:31 +0000 (15:40 +0000)
committerroland <roland>
Mon, 22 Jan 1996 15:40:31 +0000 (15:40 +0000)
stdio-common/vfscanf.c

index 7f1c86b..dd635c9 100644 (file)
@@ -725,13 +725,12 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
          while ((fc = *f++) != '\0' && fc != ']')
            {
              if (fc == '-' && *f != '\0' && *f != ']' &&
-                 (unsigned char) f[-2] <= (unsigned char) fc)
+                 (unsigned char) f[-2] <= (unsigned char) *f)
                {
                  /* Add all characters from the one before the '-'
                     up to (but not including) the next format char.  */
-                 f++;
-                 while (fc < *f)
-                   wp[fc++] = 1;
+                 for (fc = f[-2]; fc < *f; ++fc)
+                   wp[fc] = 1;
                }
              else
                /* Add the character to the flag map.  */