From 5aeb6c71d0f186331270ce7e62791687bde335f9 Mon Sep 17 00:00:00 2001 From: Michele Dionisio Date: Sat, 17 Apr 2021 08:42:52 +0200 Subject: [PATCH] msvcrt: Add __stdio_common_vfprintf_p and __stdio_common_vfwprintf_p. Signed-off-by: Michele Dionisio Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard (cherry picked from commit 8ea43f388f760c247642b327c37e46d67c58c585) Signed-off-by: Michael Stefaniuc --- .../api-ms-win-crt-private-l1-1-0.spec | 4 +-- .../api-ms-win-crt-stdio-l1-1-0.spec | 4 +-- dlls/msvcrt/file.c | 28 +++++++++++++++++++ dlls/ucrtbase/ucrtbase.spec | 8 +++--- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec index 136358a174c..246dde7dbdf 100644 --- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec +++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec @@ -147,11 +147,11 @@ @ cdecl _o___std_type_info_destroy_list(ptr) ucrtbase._o___std_type_info_destroy_list @ cdecl _o___std_type_info_name(ptr ptr) ucrtbase._o___std_type_info_name @ cdecl _o___stdio_common_vfprintf(int64 ptr str ptr ptr) ucrtbase._o___stdio_common_vfprintf -@ stub _o___stdio_common_vfprintf_p +@ cdecl _o___stdio_common_vfprintf_p(int64 ptr str ptr ptr) ucrtbase._o___stdio_common_vfprintf_p @ cdecl _o___stdio_common_vfprintf_s(int64 ptr str ptr ptr) ucrtbase._o___stdio_common_vfprintf_s @ cdecl _o___stdio_common_vfscanf(int64 ptr str ptr ptr) ucrtbase._o___stdio_common_vfscanf @ cdecl _o___stdio_common_vfwprintf(int64 ptr wstr ptr ptr) ucrtbase._o___stdio_common_vfwprintf -@ stub _o___stdio_common_vfwprintf_p +@ cdecl _o___stdio_common_vfwprintf_p(int64 ptr wstr ptr ptr) ucrtbase._o___stdio_common_vfwprintf_p @ cdecl _o___stdio_common_vfwprintf_s(int64 ptr wstr ptr ptr) ucrtbase._o___stdio_common_vfwprintf_s @ cdecl _o___stdio_common_vfwscanf(int64 ptr wstr ptr ptr) ucrtbase._o___stdio_common_vfwscanf @ cdecl _o___stdio_common_vsnprintf_s(int64 ptr long long str ptr ptr) ucrtbase._o___stdio_common_vsnprintf_s diff --git a/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec b/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec index 19c06eaa67d..fce22df0357 100644 --- a/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec +++ b/dlls/api-ms-win-crt-stdio-l1-1-0/api-ms-win-crt-stdio-l1-1-0.spec @@ -2,11 +2,11 @@ @ cdecl __p__commode() ucrtbase.__p__commode @ cdecl __p__fmode() ucrtbase.__p__fmode @ cdecl __stdio_common_vfprintf(int64 ptr str ptr ptr) ucrtbase.__stdio_common_vfprintf -@ stub __stdio_common_vfprintf_p +@ cdecl __stdio_common_vfprintf_p(int64 ptr str ptr ptr) ucrtbase.__stdio_common_vfprintf_p @ cdecl __stdio_common_vfprintf_s(int64 ptr str ptr ptr) ucrtbase.__stdio_common_vfprintf_s @ cdecl __stdio_common_vfscanf(int64 ptr str ptr ptr) ucrtbase.__stdio_common_vfscanf @ cdecl __stdio_common_vfwprintf(int64 ptr wstr ptr ptr) ucrtbase.__stdio_common_vfwprintf -@ stub __stdio_common_vfwprintf_p +@ cdecl __stdio_common_vfwprintf_p(int64 ptr wstr ptr ptr) ucrtbase.__stdio_common_vfwprintf_p @ cdecl __stdio_common_vfwprintf_s(int64 ptr wstr ptr ptr) ucrtbase.__stdio_common_vfwprintf_s @ cdecl __stdio_common_vfwscanf(int64 ptr wstr ptr ptr) ucrtbase.__stdio_common_vfwscanf @ cdecl __stdio_common_vsnprintf_s(int64 ptr long long str ptr ptr) ucrtbase.__stdio_common_vsnprintf_s diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 73e1a82476f..91d4f11007c 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -5254,6 +5254,20 @@ int CDECL _stdio_common_vfprintf(unsigned __int64 options, FILE *file, const cha return vfprintf_helper(options & UCRTBASE_PRINTF_MASK, file, format, locale, valist); } +/********************************************************************* + * __stdio_common_vfprintf_p (UCRTBASE.@) + */ +int CDECL __stdio_common_vfprintf_p(unsigned __int64 options, FILE *file, const char *format, + _locale_t locale, __ms_va_list valist) +{ + if (options & ~UCRTBASE_PRINTF_MASK) + FIXME("options %s not handled\n", wine_dbgstr_longlong(options)); + + return vfprintf_helper((options & UCRTBASE_PRINTF_MASK) | MSVCRT_PRINTF_POSITIONAL_PARAMS + | MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER, file, format, locale, valist); +} + + /********************************************************************* * __stdio_common_vfprintf_s (UCRTBASE.@) */ @@ -5279,6 +5293,20 @@ int CDECL __stdio_common_vfwprintf(unsigned __int64 options, FILE *file, const w return vfwprintf_helper(options & UCRTBASE_PRINTF_MASK, file, format, locale, valist); } +/********************************************************************* + * __stdio_common_vfwprintf_p (UCRTBASE.@) + */ +int CDECL __stdio_common_vfwprintf_p(unsigned __int64 options, FILE *file, const wchar_t *format, + _locale_t locale, __ms_va_list valist) +{ + if (options & ~UCRTBASE_PRINTF_MASK) + FIXME("options %s not handled\n", wine_dbgstr_longlong(options)); + + return vfwprintf_helper((options & UCRTBASE_PRINTF_MASK) | MSVCRT_PRINTF_POSITIONAL_PARAMS + | MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER, file, format, locale, valist); +} + + /********************************************************************* * __stdio_common_vfwprintf_s (UCRTBASE.@) */ diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 2631299d24c..85eacaa48cf 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -147,11 +147,11 @@ @ cdecl __std_type_info_hash(ptr) @ cdecl __std_type_info_name(ptr ptr) @ cdecl __stdio_common_vfprintf(int64 ptr str ptr ptr) _stdio_common_vfprintf -@ stub __stdio_common_vfprintf_p +@ cdecl __stdio_common_vfprintf_p(int64 ptr str ptr ptr) @ cdecl __stdio_common_vfprintf_s(int64 ptr str ptr ptr) @ cdecl __stdio_common_vfscanf(int64 ptr str ptr ptr) @ cdecl __stdio_common_vfwprintf(int64 ptr wstr ptr ptr) -@ stub __stdio_common_vfwprintf_p +@ cdecl __stdio_common_vfwprintf_p(int64 ptr wstr ptr ptr) @ cdecl __stdio_common_vfwprintf_s(int64 ptr wstr ptr ptr) @ cdecl __stdio_common_vfwscanf(int64 ptr wstr ptr ptr) @ cdecl __stdio_common_vsnprintf_s(int64 ptr long long str ptr ptr) @@ -811,11 +811,11 @@ @ cdecl _o___std_type_info_destroy_list(ptr) __std_type_info_destroy_list @ cdecl _o___std_type_info_name(ptr ptr) __std_type_info_name @ cdecl _o___stdio_common_vfprintf(int64 ptr str ptr ptr) _stdio_common_vfprintf -@ stub _o___stdio_common_vfprintf_p +@ cdecl _o___stdio_common_vfprintf_p(int64 ptr str ptr ptr) __stdio_common_vfprintf_p @ cdecl _o___stdio_common_vfprintf_s(int64 ptr str ptr ptr) __stdio_common_vfprintf_s @ cdecl _o___stdio_common_vfscanf(int64 ptr str ptr ptr) __stdio_common_vfscanf @ cdecl _o___stdio_common_vfwprintf(int64 ptr wstr ptr ptr) __stdio_common_vfwprintf -@ stub _o___stdio_common_vfwprintf_p +@ cdecl _o___stdio_common_vfwprintf_p(int64 ptr wstr ptr ptr) __stdio_common_vfwprintf_p @ cdecl _o___stdio_common_vfwprintf_s(int64 ptr wstr ptr ptr) __stdio_common_vfwprintf_s @ cdecl _o___stdio_common_vfwscanf(int64 ptr wstr ptr ptr) __stdio_common_vfwscanf @ cdecl _o___stdio_common_vsnprintf_s(int64 ptr long long str ptr ptr) __stdio_common_vsnprintf_s