Selaa lähdekoodia

fixed bug with %[] in doscan.c

ceriel 28 vuotta sitten
vanhempi
commit
aac653056b
1 muutettua tiedostoa jossa 4 lisäystä ja 3 poistoa
  1. 4 3
      lang/cem/libcc.ansi/stdio/doscan.c

+ 4 - 3
lang/cem/libcc.ansi/stdio/doscan.c

@@ -381,9 +381,10 @@ _doscan(register FILE *stream, const char *format, va_list ap)
 					else Xtable['-'] = 1;
 				}
 			}
-			if (!*format) return done;
-			
-			if (!(Xtable[ic] ^ reverse)) return done;
+			if (!*format || !(Xtable[ic] ^ reverse)) {
+				if (ic != EOF) ungetc(ic, stream);
+				return done;
+			}
 
 			if (!(flags & FL_NOASSIGN))
 				str = va_arg(ap, char *);