Gijs Vermeulen : msvcrt: Add _vfprintf_l.
Alexandre Julliard
julliard at winehq.org
Tue Jan 2 15:01:23 CST 2018
Module: wine
Branch: stable
Commit: ee2fb1b11e1e72703116c62f48ac9efa9d93cf30
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ee2fb1b11e1e72703116c62f48ac9efa9d93cf30
Author: Gijs Vermeulen <gijsvrm at gmail.com>
Date: Tue Sep 19 01:41:52 2017 +0200
msvcrt: Add _vfprintf_l.
Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 4a75c37b41a8dabbdd96b6b255a98b6eb814e323)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
dlls/msvcr100/msvcr100.spec | 2 +-
dlls/msvcr110/msvcr110.spec | 2 +-
dlls/msvcr120/msvcr120.spec | 2 +-
dlls/msvcr120_app/msvcr120_app.spec | 2 +-
dlls/msvcr80/msvcr80.spec | 2 +-
dlls/msvcr90/msvcr90.spec | 2 +-
dlls/msvcrt/file.c | 20 ++++++++++++++++++++
dlls/msvcrt/msvcrt.spec | 2 +-
8 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 76f88e6..cc610f6 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1433,7 +1433,7 @@
@ stub _vcwprintf_p_l
@ stub _vcwprintf_s
@ stub _vcwprintf_s_l
-@ stub _vfprintf_l
+@ cdecl _vfprintf_l(ptr str ptr ptr) MSVCRT__vfprintf_l
@ stub _vfprintf_p
@ stub _vfprintf_p_l
@ stub _vfprintf_s_l
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 416d43b..c37cfdd 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1790,7 +1790,7 @@
@ stub _vcwprintf_p_l
@ stub _vcwprintf_s
@ stub _vcwprintf_s_l
-@ stub _vfprintf_l
+@ cdecl _vfprintf_l(ptr str ptr ptr) MSVCRT__vfprintf_l
@ stub _vfprintf_p
@ stub _vfprintf_p_l
@ stub _vfprintf_s_l
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index aec2eb6..a15db46 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1808,7 +1808,7 @@
@ stub _vcwprintf_p_l
@ stub _vcwprintf_s
@ stub _vcwprintf_s_l
-@ stub _vfprintf_l
+@ cdecl _vfprintf_l(ptr str ptr ptr) MSVCRT__vfprintf_l
@ stub _vfprintf_p
@ stub _vfprintf_p_l
@ stub _vfprintf_s_l
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index 83b0862..1226fa5 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -1502,7 +1502,7 @@
@ cdecl _utime32(str ptr) msvcr120._utime32
@ cdecl _utime64(str ptr) msvcr120._utime64
@ cdecl _vacopy(ptr ptr) msvcr120._vacopy
-@ stub _vfprintf_l
+@ cdecl _vfprintf_l(ptr str ptr ptr) msvcr120._vfprintf_l
@ stub _vfprintf_p
@ stub _vfprintf_p_l
@ stub _vfprintf_s_l
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 0aec6e8..e2ed06f 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1112,7 +1112,7 @@
@ stub _vcwprintf_p_l
@ stub _vcwprintf_s
@ stub _vcwprintf_s_l
-@ stub _vfprintf_l
+@ cdecl _vfprintf_l(ptr str ptr ptr) MSVCRT__vfprintf_l
@ stub _vfprintf_p
@ stub _vfprintf_p_l
@ stub _vfprintf_s_l
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index d2e4fc5..bdf6420 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1088,7 +1088,7 @@
@ stub _vcwprintf_p_l
@ stub _vcwprintf_s
@ stub _vcwprintf_s_l
-@ stub _vfprintf_l
+@ cdecl _vfprintf_l(ptr str ptr ptr) MSVCRT__vfprintf_l
@ stub _vfprintf_p
@ stub _vfprintf_p_l
@ stub _vfprintf_s_l
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index 90a78f7a..12e5c26 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -5187,6 +5187,26 @@ int CDECL MSVCRT__stdio_common_vfwprintf(unsigned __int64 options, MSVCRT_FILE *
/*********************************************************************
+ * _vfprintf_l (MSVCRT.@)
+ */
+int CDECL MSVCRT__vfprintf_l(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);
+ ret = pf_printf_a(puts_clbk_file_a, file, format, locale, 0, arg_clbk_valist, NULL, &valist);
+ if(tmp_buf) remove_std_buffer(file);
+ MSVCRT__unlock_file(file);
+
+ return ret;
+}
+
+/*********************************************************************
* _vfwprintf_l (MSVCRT.@)
*/
int CDECL MSVCRT__vfwprintf_l(MSVCRT_FILE* file, const MSVCRT_wchar_t *format,
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index a5579a2..24634c1 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1044,7 +1044,7 @@
# stub _vcwprintf_p_l(wstr ptr ptr)
# stub _vcwprintf_s(wstr ptr)
# stub _vcwprintf_s_l(wstr ptr ptr)
-# stub _vfprintf_l(ptr str ptr ptr)
+@ cdecl _vfprintf_l(ptr str ptr ptr) MSVCRT__vfprintf_l
# stub _vfprintf_p(ptr str ptr)
# stub _vfprintf_p_l(ptr str ptr ptr)
# stub _vfprintf_s_l(ptr str ptr ptr)
More information about the wine-cvs
mailing list