PatchworkOS  19e446b
A non-POSIX operating system.
Loading...
Searching...
No Matches
vsscanf.c
Go to the documentation of this file.
1#include <ctype.h>
2#include <stdarg.h>
3#include <stdio.h>
4
5#define _SCAN_GET(ctx) \
6 ({ \
7 const char** str = (const char**)(ctx)->data; \
8 char c = **str; \
9 if (c != '\0') \
10 { \
11 (*str)++; \
12 } \
13 c == '\0' ? EOF : (unsigned char)c; \
14 })
15
16#define _SCAN_UNGET(ctx, c) \
17 ({ \
18 const char** str = (const char**)(ctx)->data; \
19 if ((c) != EOF) \
20 { \
21 (*str)--; \
22 } \
23 })
24
25#include "common/scan.h"
26
27int vsscanf(const char* _RESTRICT s, const char* _RESTRICT format, va_list arg)
28{
29 return _scan(format, arg, (void*)&s);
30}
#define _RESTRICT
Definition config.h:17
static char format[MAX_NAME]
Definition screen.c:17
static int _scan(const char *_RESTRICT format, va_list arg, void *data)
Definition scan.h:666
__builtin_va_list va_list
Definition stdarg.h:11
int vsscanf(const char *_RESTRICT s, const char *_RESTRICT format, va_list arg)
Definition vsscanf.c:27