81 while (scanlist != end_scanlist)
83 if ((*scanlist ==
'-') && (previous != -1))
86 if (++scanlist == end_scanlist)
92 while (++previous <= (
unsigned char)*scanlist)
105 if (rc == (
unsigned char)*scanlist)
110 previous = (
unsigned char)(*scanlist++);
121 const char* prev_spec;
122 const char* orig_spec = spec;
125 if (*(++spec) ==
'%')
172 if (spec == prev_spec)
338 if (
isspace((
unsigned char)rc))
396 const char* endspec = spec;
397 int negative_scanlist = 0;
405 if (*(++endspec) ==
'^')
407 negative_scanlist = 1;
417 }
while (*endspec !=
']');
422 if (negative_scanlist)
494 int prefix_parsed = 0;
499 if (
isspace((
unsigned char)rc))
558 if (
tolower((
unsigned char)rc) ==
'x')
561 if ((ctx->
base == 0) || (ctx->
base == 16))
598 if (digitptr ==
NULL)
634 *(
va_arg(ctx->
arg,
char*)) = (
char)(value * sign);
638 *(
va_arg(ctx->
arg,
unsigned char*)) = (
unsigned char)(value * sign);
642 *(
va_arg(ctx->
arg,
short*)) = (
short)(value * sign);
646 *(
va_arg(ctx->
arg,
unsigned short*)) = (
unsigned short)(value * sign);
650 *(
va_arg(ctx->
arg,
int*)) = (
int)(value * sign);
654 *(
va_arg(ctx->
arg,
unsigned int*)) = (
unsigned int)(value * sign);
658 *(
va_arg(ctx->
arg,
long*)) = (
long)(value * sign);
662 *(
va_arg(ctx->
arg,
unsigned long*)) = (
unsigned long)(value * sign);
666 *(
va_arg(ctx->
arg,
long long*)) = (
long long)(value * sign);
670 *(
va_arg(ctx->
arg,
unsigned long long*)) = (
unsigned long long)(value * sign);
683 *(
va_arg(ctx->
arg,
size_t*)) = (
size_t)(value * sign);
_PUBLIC int tolower(int c)
_PUBLIC int isspace(int c)
#define NULL
Pointer error value.
#define ERR
Integer error value.
__UINTMAX_TYPE__ uintmax_t
__PTRDIFF_TYPE__ ptrdiff_t
static void _scan_unget(int c, _format_ctx_t *ctx)
static int _scan_in_scanset(const char *scanlist, const char *end_scanlist, int rc)
const char * _scan(const char *spec, _format_ctx_t *ctx)
static int _scan_get(_format_ctx_t *ctx)
#define _FILE_GETC(stream)
#define _FILE_CHECK_AVAIL(fh)
__UINTPTR_TYPE__ uintptr_t
_PUBLIC int ungetc(int c, FILE *stream)
#define strtol(nptr, endptr, base)
_PUBLIC void * memchr(const void *s, int c, size_t n)