projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add missing strerror text for key management
[musl]
/
src
/
stdio
/
vfwscanf.c
diff --git
a/src/stdio/vfwscanf.c
b/src/stdio/vfwscanf.c
index
1ebc5ce
..
82f4860
100644
(file)
--- a/
src/stdio/vfwscanf.c
+++ b/
src/stdio/vfwscanf.c
@@
-11,7
+11,6
@@
#include "shgetc.h"
#include "intscan.h"
#include "floatscan.h"
#include "shgetc.h"
#include "intscan.h"
#include "floatscan.h"
-#include "libc.h"
#define SIZE_hh -2
#define SIZE_h -1
#define SIZE_hh -2
#define SIZE_h -1
@@
-77,7
+76,7
@@
static int in_set(const wchar_t *set, int c)
#if 1
#undef getwc
#define getwc(f) \
#if 1
#undef getwc
#define getwc(f) \
- ((f)->rpos
<
(f)->rend && *(f)->rpos < 128 ? *(f)->rpos++ : (getwc)(f))
+ ((f)->rpos
!=
(f)->rend && *(f)->rpos < 128 ? *(f)->rpos++ : (getwc)(f))
#undef ungetwc
#define ungetwc(c,f) \
#undef ungetwc
#define ungetwc(c,f) \
@@
-117,8
+116,12
@@
int vfwscanf(FILE *restrict f, const wchar_t *restrict fmt, va_list ap)
continue;
}
if (*p != '%' || p[1] == '%') {
continue;
}
if (*p != '%' || p[1] == '%') {
- p += *p=='%';
- c = getwc(f);
+ if (*p == '%') {
+ p++;
+ while (iswspace((c=getwc(f)))) pos++;
+ } else {
+ c = getwc(f);
+ }
if (c!=*p) {
ungetwc(c, f);
if (c<0) goto input_fail;
if (c!=*p) {
ungetwc(c, f);
if (c<0) goto input_fail;