From 77306693d4a9721034968772769b88374688ae40 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Wed, 12 Dec 2012 11:15:33 +0100 Subject: [PATCH] msvcr100: Added _sprintf_p implementation. --- dlls/msvcr100/msvcr100.c | 15 +++++++++++++++ dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- include/msvcrt/stdio.h | 1 + 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/dlls/msvcr100/msvcr100.c b/dlls/msvcr100/msvcr100.c index f529b10e8f1..1a54c435e41 100644 --- a/dlls/msvcr100/msvcr100.c +++ b/dlls/msvcr100/msvcr100.c @@ -457,6 +457,21 @@ size_t CDECL fread_s(void *buf, size_t buf_size, size_t elem_size, size_t count, return buf_pos/elem_size; } +/********************************************************************* + * _sprintf_p (MSVCR100.@) + */ +int CDECL _sprintf_p(char *buffer, size_t length, const char *format, ...) +{ + __ms_va_list valist; + int r; + + __ms_va_start(valist, format); + r = _vsprintf_p_l(buffer, length, format, NULL, valist); + __ms_va_end(valist); + + return r; +} + /********************************************************************* * DllMain (MSVCR100.@) */ diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 70fca053817..510c974ccba 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1312,7 +1312,7 @@ @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s @ stub _sprintf_l -@ stub _sprintf_p +@ varargs _sprintf_p(ptr long str) @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l @ stub _sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 2eecb7a45ba..27a8f6d4107 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -974,7 +974,7 @@ @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s @ stub _sprintf_l -@ stub _sprintf_p +@ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l @ stub _sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 8644692fcac..ccdb7e0ff52 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -967,7 +967,7 @@ @ cdecl _splitpath(str ptr ptr ptr ptr) msvcrt._splitpath @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) msvcrt._splitpath_s @ stub _sprintf_l -@ stub _sprintf_p +@ varargs _sprintf_p(ptr long str) msvcr100._sprintf_p @ varargs _sprintf_p_l(ptr long str ptr) msvcrt._sprintf_p_l @ stub _sprintf_s_l @ varargs _sscanf_l(str str ptr) msvcrt._sscanf_l diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index f2775166ee1..f6bf3b56942 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -125,6 +125,7 @@ int __cdecl _scprintf(const char*,...); int __cdecl _vscprintf(const char*,__ms_va_list); int __cdecl _vsnprintf(char*,size_t,const char*,__ms_va_list); int __cdecl _vsnprintf_s(char*,size_t,size_t,const char*,__ms_va_list); +int __cdecl _vsprintf_p_l(char*,size_t,const char*,_locale_t,__ms_va_list); void __cdecl clearerr(FILE*); int __cdecl fclose(FILE*);