1 #include "stdio_impl.h"
2 #include <string.h>
3 
4 // Empty implementation because vfscanf operates rpos directly.
string_read(FILE *f, unsigned char *buf, size_t len)5 static size_t string_read(FILE *f, unsigned char *buf, size_t len)
6 {
7 	return 0;
8 }
9 
vsscanf(const char *restrict s, const char *restrict fmt, va_list ap)10 int 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 
21 weak_alias(vsscanf,__isoc99_vsscanf);
22