From: Alexandre Bique <bique.alexandre@gmail.com>
Subject: msvcrt: implement _vsprintf_l as a call to _vsnprintf_l(..., INT_MAX, ...)
Message-Id: <CAP737oKfYBhgHhn7b8vNc8ZKUUaQTZTnSpJqzROKQjk=xeFh8A@mail.gmail.com>
Date: Mon, 9 Dec 2013 10:59:02 +0100

Hi,

It fixes http://bugs.winehq.org/show_bug.cgi?id=34902.

Regards,
-- 
Alexandre Bique

From 4f38a4f9d153e918e8280ff9bc2f26ea2045c3b6 Mon Sep 17 00:00:00 2001
From: Alexandre Bique <bique.alexandre@gmail.com>
Date: Mon, 9 Dec 2013 10:51:54 +0100
Subject: msvcrt: implement _vsprintf_l as a call to _vsnprintf_l(..., INT_MAX,
 ...)

---
 dlls/msvcr100/msvcr100.spec |  2 +-
 dlls/msvcr110/msvcr110.spec |  2 +-
 dlls/msvcr80/msvcr80.spec   |  2 +-
 dlls/msvcr90/msvcr90.spec   |  2 +-
 dlls/msvcrt/msvcrt.spec     |  2 +-
 dlls/msvcrt/wcs.c           | 11 ++++++++++-
 6 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index eaad8fe..b5c8614 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1458,7 +1458,7 @@
 @ cdecl _vsnwprintf_l(ptr long wstr ptr ptr) msvcrt._vsnwprintf_l
 @ cdecl _vsnwprintf_s(ptr long long wstr ptr) msvcrt._vsnwprintf_s
 @ cdecl _vsnwprintf_s_l(ptr long long wstr ptr ptr) msvcrt._vsnwprintf_s_l
-@ stub _vsprintf_l
+@ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l
 @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p
 @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l
 @ stub _vsprintf_s_l
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index d909719..f37bdd7 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1816,7 +1816,7 @@
 @ cdecl _vsnwprintf_l(ptr long wstr ptr ptr) msvcrt._vsnwprintf_l
 @ cdecl _vsnwprintf_s(ptr long long wstr ptr) msvcrt._vsnwprintf_s
 @ cdecl _vsnwprintf_s_l(ptr long long wstr ptr ptr) msvcrt._vsnwprintf_s_l
-@ stub _vsprintf_l
+@ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l
 @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p
 @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l
 @ stub _vsprintf_s_l
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 697936c..6090a4b 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1137,7 +1137,7 @@
 @ cdecl _vsnwprintf_l(ptr long wstr ptr ptr) msvcrt._vsnwprintf_l
 @ cdecl _vsnwprintf_s(ptr long long wstr ptr) msvcrt._vsnwprintf_s
 @ cdecl _vsnwprintf_s_l(ptr long long wstr ptr ptr) msvcrt._vsnwprintf_s_l
-@ stub _vsprintf_l
+@ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l
 @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p
 @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l
 @ stub _vsprintf_s_l
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index ca2503f..4a30bb1 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1113,7 +1113,7 @@
 @ cdecl _vsnwprintf_l(ptr long wstr ptr ptr) msvcrt._vsnwprintf_l
 @ cdecl _vsnwprintf_s(ptr long long wstr ptr) msvcrt._vsnwprintf_s
 @ cdecl _vsnwprintf_s_l(ptr long long wstr ptr ptr) msvcrt._vsnwprintf_s_l
-@ stub _vsprintf_l
+@ cdecl _vsprintf_l(ptr str ptr ptr) msvcrt._vsprintf_l
 @ cdecl _vsprintf_p(ptr long str ptr) msvcrt._vsprintf_p
 @ cdecl _vsprintf_p_l(ptr long str ptr ptr) msvcrt._vsprintf_p_l
 @ stub _vsprintf_s_l
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index a87e72f..cbeca9e 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1073,7 +1073,7 @@
 @ cdecl _vsnwprintf_l(ptr long wstr ptr ptr) MSVCRT_vsnwprintf_l
 @ cdecl _vsnwprintf_s(ptr long long wstr ptr) MSVCRT_vsnwprintf_s
 @ cdecl _vsnwprintf_s_l(ptr long long wstr ptr ptr) MSVCRT_vsnwprintf_s_l
-# stub _vsprintf_l(ptr str ptr ptr)
+@ cdecl _vsprintf_l(ptr str ptr ptr) MSVCRT_vsprintf_l
 @ cdecl _vsprintf_p(ptr long str ptr) MSVCRT_vsprintf_p
 @ cdecl _vsprintf_p_l(ptr long str ptr ptr) MSVCRT_vsprintf_p_l
 # stub _vsprintf_s_l(ptr long str ptr ptr)
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 3f85a84..28e05d9 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -622,7 +622,7 @@ int CDECL MSVCRT_vsnprintf( char *str, MSVCRT_size_t len,
 }
 
 /*********************************************************************
-*		_vsnprintf_l (MSVCRT.@)
+ *		_vsnprintf_l (MSVCRT.@)
  */
 int CDECL MSVCRT_vsnprintf_l( char *str, MSVCRT_size_t len, const char *format,
                             MSVCRT__locale_t locale, __ms_va_list valist )
@@ -638,6 +638,15 @@ int CDECL MSVCRT_vsnprintf_l( char *str, MSVCRT_size_t len, const char *format,
 }
 
 /*********************************************************************
+ *		_vsprintf_l (MSVCRT.@)
+ */
+int CDECL MSVCRT_vsprintf_l( char *str, const char *format,
+                            MSVCRT__locale_t locale, __ms_va_list valist )
+{
+    return MSVCRT_vsnprintf_l(str, INT_MAX, format, locale, valist);
+}
+
+/*********************************************************************
  *		_vsnprintf_s_l (MSVCRT.@)
  */
 int CDECL MSVCRT_vsnprintf_s_l( char *str, MSVCRT_size_t sizeOfBuffer,
-- 
1.8.5.1