1#include "stdio_impl.h"
2#include <string.h>
3
4// Empty implementation because vfscanf operates rpos directly.
5static size_t string_read(FILE *f, unsigned char *buf, size_t len)
6{
7	return 0;
8}
9
10int vsscanf(const char *restrict s, const char *restrict fmt, va_list ap)
11{
12	size_t s_len = strlen(s);
13	FILE f = {
14		.buf = (void *)s, .cookie = (void *)s,
15		.read = string_read, .lock = -1,
16		.buf_size = s_len, .rpos = s, .rend = s + s_len,
17	};
18	return vfscanf(&f, fmt, ap);
19}
20
21weak_alias(vsscanf,__isoc99_vsscanf);
22