[PATCH 0/2] MR9877: include: Add more *scanf function declarations.
From: Jacek Caban <jacek@codeweavers.com> --- include/msvcrt/stdio.h | 64 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index c402a9a299e..97526fe7ae1 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -340,6 +340,12 @@ static inline int __cdecl _sprintf_l(char *buffer, const char *format, _locale_t return ret < 0 ? -1 : ret; } +static inline int __cdecl vsscanf(const char *buffer, const char *format, va_list args) __WINE_CRT_SCANF_ATTR(2, 0); +static inline int __cdecl vsscanf(const char *buffer, const char *format, va_list args) +{ + return __stdio_common_vsscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, buffer, -1, format, NULL, args); +} + static inline int __cdecl sscanf(const char *buffer, const char *format, ...) __WINE_CRT_SCANF_ATTR(2, 3); static inline int __cdecl sscanf(const char *buffer, const char *format, ...) { @@ -376,6 +382,12 @@ static inline int __cdecl _snscanf_l(const char *buffer, size_t size, const char return ret; } +static inline int __cdecl _vsscanf_l(const char *buffer, const char *format, _locale_t locale, va_list args) __WINE_CRT_SCANF_ATTR(2, 0); +static inline int __cdecl _vsscanf_l(const char *buffer, const char *format, _locale_t locale, va_list args) +{ + return __stdio_common_vsscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, buffer, -1, format, locale, args); +} + static inline int __cdecl _sscanf_l(const char *buffer, const char *format, _locale_t locale, ...) __WINE_CRT_SCANF_ATTR(2, 4); static inline int __cdecl _sscanf_l(const char *buffer, const char *format, _locale_t locale, ...) { @@ -388,6 +400,30 @@ static inline int __cdecl _sscanf_l(const char *buffer, const char *format, _loc return ret; } +static inline int __cdecl _vfscanf_l(FILE *file, const char *format, _locale_t locale, va_list args) __WINE_CRT_SCANF_ATTR(2, 0); +static inline int __cdecl _vfscanf_l(FILE *file, const char *format, _locale_t locale, va_list args) +{ + return __stdio_common_vfscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, file, format, locale, args); +} + +static inline int __cdecl _fscanf_l(FILE *file, const char *format, _locale_t locale, ...) __WINE_CRT_SCANF_ATTR(2, 4); +static inline int __cdecl _fscanf_l(FILE *file, const char *format, _locale_t locale, ...) +{ + int ret; + va_list args; + + va_start(args, locale); + ret = _vfscanf_l(file, format, locale, args); + va_end(args); + return ret; +} + +static inline int __cdecl vfscanf(FILE *file, const char *format, va_list args) __WINE_CRT_SCANF_ATTR(2, 0); +static inline int __cdecl vfscanf(FILE *file, const char *format, va_list args) +{ + return __stdio_common_vfscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, file, format, NULL, args); +} + static inline int __cdecl fscanf(FILE *file, const char *format, ...) __WINE_CRT_SCANF_ATTR(2, 3); static inline int __cdecl fscanf(FILE *file, const char *format, ...) { @@ -412,6 +448,30 @@ static inline int __cdecl fscanf_s(FILE *file, const char *format, ...) return ret; } +static inline int __cdecl _vscanf_l(const char *format, _locale_t locale, va_list args) __WINE_CRT_SCANF_ATTR(1, 0); +static inline int __cdecl _vscanf_l(const char *format, _locale_t locale, va_list args) +{ + return __stdio_common_vfscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin, format, locale, args); +} + +static inline int __cdecl _scanf_l(const char *format, _locale_t locale, ...) __WINE_CRT_SCANF_ATTR(1, 3); +static inline int __cdecl _scanf_l(const char *format, _locale_t locale, ...) +{ + int ret; + va_list args; + + va_start(args, locale); + ret = _vscanf_l(format, locale, args); + va_end(args); + return ret; +} + +static inline int __cdecl vscanf(const char *format, va_list args) __WINE_CRT_SCANF_ATTR(1, 0); +static inline int __cdecl vscanf(const char *format, va_list args) +{ + return __stdio_common_vfscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin, format, NULL, args); +} + static inline int __cdecl scanf(const char *format, ...) __WINE_CRT_SCANF_ATTR(1, 2); static inline int __cdecl scanf(const char *format, ...) { @@ -460,6 +520,8 @@ static inline int vsnprintf(char *buffer, size_t size, const char *format, va_li static inline int vsnprintf(char *buffer, size_t size, const char *format, va_list args) { return _vsnprintf(buffer,size,format,args); } +_ACRTIMP int __cdecl _fscanf_l(FILE*,const char*,_locale_t,...) __WINE_CRT_SCANF_ATTR(2, 4); +_ACRTIMP int __cdecl _scanf_l(const char *format, _locale_t locale, ...) __WINE_CRT_SCANF_ATTR(1, 3); _ACRTIMP int __cdecl _snscanf_l(const char*,size_t,const char*,_locale_t,...) __WINE_CRT_SCANF_ATTR(3, 5); _ACRTIMP int __cdecl _sscanf_l(const char *,const char*,_locale_t,...) __WINE_CRT_SCANF_ATTR(2, 4); _ACRTIMP int __cdecl fscanf(FILE*,const char*,...) __WINE_CRT_SCANF_ATTR(2, 3); @@ -468,6 +530,8 @@ _ACRTIMP int __cdecl scanf(const char*,...) __WINE_CRT_SCANF_ATTR(1, 2); _ACRTIMP int __cdecl scanf_s(const char*,...) __WINE_CRT_SCANF_ATTR(1, 2); _ACRTIMP int __cdecl sscanf(const char*,const char*,...) __WINE_CRT_SCANF_ATTR(2, 3); _ACRTIMP int __cdecl sscanf_s(const char*,const char*,...) __WINE_CRT_SCANF_ATTR(2, 3); +_ACRTIMP int __cdecl vscanf(const char *format, va_list args) __WINE_CRT_SCANF_ATTR(1, 0); +_ACRTIMP int __cdecl vfscanf(FILE *file, const char *format, va_list args) __WINE_CRT_SCANF_ATTR(2, 0); _ACRTIMP int __cdecl vsscanf(const char*, const char*, va_list) __WINE_CRT_SCANF_ATTR(2, 0); #endif /* _UCRT && !_NO_CRT_STDIO_INLINE */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9877
From: Jacek Caban <jacek@codeweavers.com> --- include/msvcrt/corecrt_wstdio.h | 69 +++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/include/msvcrt/corecrt_wstdio.h b/include/msvcrt/corecrt_wstdio.h index ca5d804e30b..bc5196686c1 100644 --- a/include/msvcrt/corecrt_wstdio.h +++ b/include/msvcrt/corecrt_wstdio.h @@ -292,6 +292,27 @@ static inline int __cdecl wprintf_s(const wchar_t *format, ...) return ret; } +static inline int __cdecl _vswscanf_l(const wchar_t *buffer, const wchar_t *format, _locale_t locale, va_list args) +{ + return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, buffer, -1, format, locale, args); +} + +static inline int __cdecl _swscanf_l(const wchar_t *buffer, const wchar_t *format, _locale_t locale, ...) +{ + int ret; + va_list args; + + va_start(args, locale); + ret = _vswscanf_l(buffer, format, locale, args); + va_end(args); + return ret; +} + +static inline int __cdecl vswscanf(const wchar_t *buffer, const wchar_t *format, va_list args) +{ + return _vswscanf_l(buffer, format, NULL, args); +} + static inline int __cdecl swscanf(const wchar_t *buffer, const wchar_t *format, ...) { int ret; @@ -314,6 +335,27 @@ static inline int __cdecl swscanf_s(const wchar_t *buffer, const wchar_t *format return ret; } +static inline int __cdecl _vfwscanf_l(FILE *file, const wchar_t *format, _locale_t locale, va_list args) +{ + return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, file, format, locale, args); +} + +static inline int __cdecl _fwscanf_l(FILE *file, const wchar_t *format, _locale_t locale, ...) +{ + int ret; + va_list args; + + va_start(args, locale); + ret = _vfwscanf_l(file, format, locale, args); + va_end(args); + return ret; +} + +static inline int __cdecl vfwscanf(FILE *file, const wchar_t *format, va_list args) +{ + return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, file, format, NULL, args); +} + static inline int __cdecl fwscanf(FILE *file, const wchar_t *format, ...) { int ret; @@ -336,6 +378,27 @@ static inline int __cdecl fwscanf_s(FILE *file, const wchar_t *format, ...) return ret; } +static inline int __cdecl _vwscanf_l(const wchar_t *format, _locale_t locale, va_list args) +{ + return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin, format, locale, args); +} + +static inline int __cdecl _wscanf_l(const wchar_t *format, _locale_t locale, ...) +{ + int ret; + va_list args; + + va_start(args, locale); + ret = _vwscanf_l(format, locale, args); + va_end(args); + return ret; +} + +static inline int __cdecl vwscanf(const wchar_t *format, va_list args) +{ + return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin, format, NULL, args); +} + static inline int __cdecl wscanf(FILE *file, const wchar_t *format, ...) { int ret; @@ -399,10 +462,16 @@ _ACRTIMP int __cdecl vswprintf(wchar_t*,size_t,const wchar_t*,va_list); _ACRTIMP int __cdecl swprintf(wchar_t*,size_t,const wchar_t*,...); #endif /* _CRT_NON_CONFORMING_SWPRINTFS */ +_ACRTIMP int __cdecl _fwscanf_l(FILE*,const wchar_t*,_locale_t,...); +_ACRTIMP int __cdecl _swscanf_l(const wchar_t*,const wchar_t*,_locale_t,...); +_ACRTIMP int __cdecl _wscanf_l(const wchar_t*,_locale_t,...); _ACRTIMP int __cdecl fwscanf(FILE*,const wchar_t*,...); _ACRTIMP int __cdecl fwscanf_s(FILE*,const wchar_t*,...); _ACRTIMP int __cdecl swscanf(const wchar_t*,const wchar_t*,...); _ACRTIMP int __cdecl swscanf_s(const wchar_t*,const wchar_t*,...); +_ACRTIMP int __cdecl vfwscanf(FILE*,const wchar_t*,va_list); +_ACRTIMP int __cdecl vswscanf(const wchar_t*,const wchar_t*,va_list); +_ACRTIMP int __cdecl vwscanf(const wchar_t*,va_list); _ACRTIMP int __cdecl wscanf(const wchar_t*,...); _ACRTIMP int __cdecl wscanf_s(const wchar_t*,...); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9877
participants (2)
-
Jacek Caban -
Jacek Caban (@jacek)