Module: wine Branch: stable Commit: f81873a5998aa7aa78fd463d62d8c0f0e4055efa URL: https://source.winehq.org/git/wine.git/?a=commit;h=f81873a5998aa7aa78fd463d6...
Author: Alex Henrie alexhenrie24@gmail.com Date: Mon Sep 4 12:06:57 2017 -0600
ucrtbase: Add __stdio_common_vfprintf_s.
Signed-off-by: Alex Henrie alexhenrie24@gmail.com Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit a116f4a7abfe09182eb488a033dbbf0c20e2f9f4) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
.../api-ms-win-crt-stdio-l1-1-0.spec | 2 +- dlls/msvcrt/file.c | 27 ++++++++++++++++++++++ dlls/ucrtbase/ucrtbase.spec | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-)
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 6acd08e..6196fb4 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 @@ -3,7 +3,7 @@ @ cdecl __p__fmode() ucrtbase.__p__fmode @ cdecl __stdio_common_vfprintf(int64 ptr str ptr ptr) ucrtbase.__stdio_common_vfprintf @ stub __stdio_common_vfprintf_p -@ stub __stdio_common_vfprintf_s +@ 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 diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index bef27e1..90a78f7a 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -5132,6 +5132,33 @@ int CDECL MSVCRT__stdio_common_vfprintf(unsigned __int64 options, MSVCRT_FILE *f }
/********************************************************************* + * __stdio_common_vfprintf_s (UCRTBASE.@) + */ +int CDECL MSVCRT__stdio_common_vfprintf_s(unsigned __int64 options, MSVCRT_FILE *file, const char *format, + MSVCRT__locale_t locale, __ms_va_list valist) +{ + BOOL tmp_buf; + int ret; + + if (!MSVCRT_CHECK_PMT(file != NULL)) return -1; + + MSVCRT__lock_file(file); + tmp_buf = add_std_buffer(file); + + if (options & ~UCRTBASE_PRINTF_MASK) + FIXME("options %s not handled\n", wine_dbgstr_longlong(options)); + + ret = pf_printf_a(puts_clbk_file_a, file, format, locale, + (options & UCRTBASE_PRINTF_MASK) | MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER, + arg_clbk_valist, NULL, &valist); + + if (tmp_buf) remove_std_buffer(file); + MSVCRT__unlock_file(file); + + return ret; +} + +/********************************************************************* * __stdio_common_vfwprintf (UCRTBASE.@) */ int CDECL MSVCRT__stdio_common_vfwprintf(unsigned __int64 options, MSVCRT_FILE *file, const MSVCRT_wchar_t *format, diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 440f2d8..a6b2043 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -148,7 +148,7 @@ @ cdecl __std_type_info_name(ptr ptr) MSVCRT_type_info_name_list @ cdecl __stdio_common_vfprintf(int64 ptr str ptr ptr) MSVCRT__stdio_common_vfprintf @ stub __stdio_common_vfprintf_p -@ stub __stdio_common_vfprintf_s +@ cdecl __stdio_common_vfprintf_s(int64 ptr str ptr ptr) MSVCRT__stdio_common_vfprintf_s @ cdecl __stdio_common_vfscanf(int64 ptr str ptr ptr) MSVCRT__stdio_common_vfscanf @ cdecl __stdio_common_vfwprintf(int64 ptr wstr ptr ptr) MSVCRT__stdio_common_vfwprintf @ stub __stdio_common_vfwprintf_p