浏览代码

Bug fix from Peter Kjellerstedt <peter.kjellerstedt@axis.com>. vfscanf was
not setting the FILE bufread member to flag the end of the buffer.
Also, do not set bufgetc member if getc macro support is disabled.

Manuel Novoa III 22 年之前
父节点
当前提交
7247787b50
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      libc/stdio/scanf.c

+ 9 - 1
libc/stdio/scanf.c

@@ -35,6 +35,11 @@
  *
  * May 15, 2003
  * Hopefully fix handling of 0 bytes with %s, %c, and %[ specifiers.
+ *
+ * July 17, 2003
+ * Bug fix from  Peter Kjellerstedt <peter.kjellerstedt@axis.com>.  vfscanf was
+ * not setting the FILE bufread member to flag the end of the buffer.
+ * Also, do not set bufgetc member if getc macro support is disabled.
  */
 
 #define _ISOC99_SOURCE			/* for LLONG_MAX primarily... */
@@ -128,7 +133,10 @@ int vsscanf(__const char *sp, __const char *fmt, va_list ap)
 	string->filedes = -2;
 	string->modeflags = (__FLAG_NARROW|__FLAG_READONLY);
 	string->bufstart = string->bufpos = (unsigned char *) ((void *) sp);
-	string->bufgetc = string->bufstart + strlen(sp);
+#ifdef __STDIO_GETC_MACRO
+	string->bufgetc = 
+#endif /* __STDIO_GETC_MACRO */
+	string->bufread = string->bufstart + strlen(sp);
 
 #ifdef __STDIO_MBSTATE
 	__INIT_MBSTATE(&(string->state));