29#define _EOF_RET (short)WEOF
30#define _ISSPACE_(c) iswspace(c)
31#define _WIDE2SUPPORTED_(c) c
32#define _CHAR2SUPPORTED_(c) c
33#define _CHAR2DIGIT_(c, base) wchar2digit((c), (base))
34#define _BITMAPSIZE_ 256*256
39#define _ISSPACE_(c) isspace(c)
40#define _WIDE2SUPPORTED_(c) c
41#define _CHAR2SUPPORTED_(c) c
42#define _CHAR2DIGIT_(c, base) char2digit((c), (base))
43#define _BITMAPSIZE_ 256
47#define _GETC_FUNC_(file) _getch()
48#define _STRTOD_NAME_(func) console_ ## func
49#define _GETC_(file) (consumed++, _getch())
50#define _UNGETC_(nch, file) do { _ungetch(nch); consumed--; } while(0)
51#define _LOCK_FILE_(file) _lock_file(stdin)
52#define _UNLOCK_FILE_(file) _unlock_file(stdin)
55#define _FUNCTION_ static int vcwscanf_s_l(const wchar_t *format, _locale_t locale, va_list ap)
57#define _FUNCTION_ static int vcwscanf_l(const wchar_t *format, _locale_t locale, va_list ap)
61#define _FUNCTION_ static int vcscanf_s_l(const char *format, _locale_t locale, va_list ap)
63#define _FUNCTION_ static int vcscanf_l(const char *format, _locale_t locale, va_list ap)
70#define _GETC_FUNC_(file) (*file++)
72#define _STRTOD_NAME_(func) wstr_ ## func
74#define _STRTOD_NAME_(func) str_ ## func
78#define _GETC_(file) (consumed++, consumed>length ? '\0' : *file++)
80#define _GETC_(file) (consumed++, consumed>length ? '\0' : (unsigned char)*file++)
82#define _UNGETC_(nch, file) do { file--; consumed--; } while(0)
83#define _LOCK_FILE_(file) do {} while(0)
84#define _UNLOCK_FILE_(file) do {} while(0)
87#define _FUNCTION_ static int vsnwscanf_s_l(const wchar_t *file, size_t length, const wchar_t *format, _locale_t locale, va_list ap)
89#define _FUNCTION_ static int vsnwscanf_l(const wchar_t *file, size_t length, const wchar_t *format, _locale_t locale, va_list ap)
93#define _FUNCTION_ static int vsnscanf_s_l(const char *file, size_t length, const char *format, _locale_t locale, va_list ap)
95#define _FUNCTION_ static int vsnscanf_l(const char *file, size_t length, const char *format, _locale_t locale, va_list ap)
100#define _GETC_(file) (consumed++, *file++)
102#define _GETC_(file) (consumed++, (unsigned char)*file++)
104#define _UNGETC_(nch, file) do { file--; consumed--; } while(0)
105#define _LOCK_FILE_(file) do {} while(0)
106#define _UNLOCK_FILE_(file) do {} while(0)
109#define _FUNCTION_ static int vswscanf_s_l(const wchar_t *file, const wchar_t *format, _locale_t locale, va_list ap)
111#define _FUNCTION_ static int vswscanf_l(const wchar_t *file, const wchar_t *format, _locale_t locale, va_list ap)
115#define _FUNCTION_ static int vsscanf_s_l(const char *file, const char *format, _locale_t locale, va_list ap)
117#define _FUNCTION_ static int vsscanf_l(const char *file, const char *format, _locale_t locale, va_list ap)
123#define _GETC_FUNC_(file) fgetwc(file)
124#define _STRTOD_NAME_(func) filew_ ## func
125#define _GETC_(file) (consumed++, fgetwc(file))
126#define _UNGETC_(nch, file) do { ungetwc(nch, file); consumed--; } while(0)
127#define _LOCK_FILE_(file) _lock_file(file)
128#define _UNLOCK_FILE_(file) _unlock_file(file)
130#define _FUNCTION_ static int vfwscanf_s_l(FILE* file, const wchar_t *format, _locale_t locale, va_list ap)
132#define _FUNCTION_ static int vfwscanf_l(FILE* file, const wchar_t *format, _locale_t locale, va_list ap)
135#define _GETC_FUNC_(file) fgetc(file)
136#define _STRTOD_NAME_(func) file_ ## func
137#define _GETC_(file) (consumed++, fgetc(file))
138#define _UNGETC_(nch, file) do { ungetc(nch, file); consumed--; } while(0)
139#define _LOCK_FILE_(file) _lock_file(file)
140#define _UNLOCK_FILE_(file) _unlock_file(file)
142#define _FUNCTION_ static int vfscanf_s_l(FILE* file, const char *format, _locale_t locale, va_list ap)
144#define _FUNCTION_ static int vfscanf_l(FILE* file, const char *format, _locale_t locale, va_list ap)
150#if (!defined(SECURE) && !defined(STRING_LEN) && (!defined(CONSOLE) || !defined(WIDE_SCANF)))
151struct _STRTOD_NAME_(strtod_scanf_ctx) {
167 struct _STRTOD_NAME_(strtod_scanf_ctx) *
context =
ctx;
186 struct _STRTOD_NAME_(strtod_scanf_ctx) *
context =
ctx;
242 else if (*
format ==
'%') {
249 int prefix_finished = 0;
259 while (!prefix_finished) {
267 case 'h': h_prefix++;
break;
275 case 'w': w_prefix = 1;
break;
276 case 'L': L_prefix = 1;
break;
278 if (*(
format + 1) ==
'6' &&
284 else if (*(
format + 1) ==
'3' &&
290#if _MSVCR_VER == 0 || _MSVCR_VER >= 140
293 if (
sizeof(
void *) ==
sizeof(
LONGLONG)) I64_prefix = 1;
298 if (!prefix_finished)
format++;
305 if (
sizeof(
void *) ==
sizeof(
LONGLONG)) I64_prefix = 1;
331 if (
nch ==
'-' ||
nch ==
'+') {
332 negative = (
nch==
'-');
375 if (!seendigit)
break;
378#define _SET_NUMBER_(type) *va_arg(ap, type*) = negative ? -cur : cur
445 if (w_prefix || l_prefix)
goto widecharstring;
446 else if (h_prefix)
goto charstring;
448 else goto widecharstring;
450 else goto charstring;
453 if (w_prefix || l_prefix)
goto widecharstring;
454 else if (h_prefix)
goto charstring;
456 else goto charstring;
458 else goto widecharstring;
462 char *sptr_beg = sptr;
497 wchar_t *sptr_beg = sptr;
535 if (w_prefix || l_prefix)
goto widecharacter;
536 else if (h_prefix)
goto character;
538 else goto widecharacter;
543 if (w_prefix || l_prefix)
goto widecharacter;
544 else if (h_prefix)
goto character;
548 else goto widecharacter;
733#undef _CHAR2SUPPORTED_
734#undef _WIDE2SUPPORTED_
#define RtlInitializeBitMap
#define HeapFree(x, y, z)
struct fpnum fpnum_parse(wchar_t(*)(void *), void(*)(void *), void *, pthreadlocinfo, BOOL)
int fpnum_double(struct fpnum *, double *)
static void _STRTOD_NAME_() strtod_scanf_unget(void *ctx)
#define _WIDE2SUPPORTED_(c)
#define _LOCK_FILE_(file)
#define _GETC_FUNC_(file)
#define _SET_NUMBER_(type)
#define _UNLOCK_FILE_(file)
#define _UNGETC_(nch, file)
#define _CHAR2SUPPORTED_(c)
#define _STRTOD_NAME_(func)
static wchar_t _STRTOD_NAME_() strtod_scanf_get(void *ctx)
#define _CHAR2DIGIT_(c, base)
GLint GLint GLsizei width
GLuint GLsizei GLsizei * length
static unsigned int number
void int int ULONGLONG int va_list * ap