initial check-in, version 0.5.0
[musl] / src / stdio / vsscanf.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <ctype.h>
4
5 #include "__scanf.h"
6
7 static void s_read(rctx_t *r)
8 {
9         unsigned char *s = r->opaque;
10         if (!s[r->l]) r->c = -1;
11         else r->c = s[r->l++];
12 }
13
14 int vsscanf(const char *s, const char *fmt, va_list ap)
15 {
16         size_t l = strlen(fmt), i;
17         wchar_t fmt2[l+1];
18         rctx_t r = { s_read, (void *)s, 0, isspace };
19         for (i=0; i<=l; i++) fmt2[i] = (unsigned char)fmt[i];
20         return __scanf(&r, fmt2, ap);
21 }