From 84dbedc922dbfea6f8a0a562e9fb6142bc58f9da Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 14 Feb 2020 13:07:24 +0100 Subject: [PATCH] stdio.h: Provide sprintf and _snprintf as inline wrappers. It's enough for Wine debug functions to use _vsnprintf from ucrtbase importlib instead of ntdll for modules that link to ucrtbase. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/msvcp90/msvcp_main.c | 10 ---------- include/msvcrt/stdio.h | 24 ++++++++++++++++++++++-- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/dlls/msvcp90/msvcp_main.c b/dlls/msvcp90/msvcp_main.c index 6166591d0cb..b6375f71dc6 100644 --- a/dlls/msvcp90/msvcp_main.c +++ b/dlls/msvcp90/msvcp_main.c @@ -124,16 +124,6 @@ int WINAPIV _scprintf(const char* fmt, ...) __ms_va_end(valist); return ret; } - -int WINAPIV sprintf(char *buf, const char *fmt, ...) -{ - int ret; - __ms_va_list valist; - __ms_va_start(valist, fmt); - ret = _vsnprintf(buf, -1, fmt, valist); - __ms_va_end(valist); - return ret; -} #endif static void init_cxx_funcs(void) diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index d01e788f805..ecaa7fe611a 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -98,7 +98,6 @@ int __cdecl _putw(int,FILE*); int __cdecl _rmtmp(void); int __cdecl _set_printf_count_output(int); int __cdecl _setmaxstdio(int); -int WINAPIV _snprintf(char*,size_t,const char*,...); int WINAPIV _snprintf_s(char*,size_t,size_t,const char*,...); char* __cdecl _tempnam(const char*,const char*); int __cdecl _unlink(const char*); @@ -165,7 +164,6 @@ int WINAPIV scanf(const char*,...); int WINAPIV scanf_s(const char*,...); void __cdecl setbuf(FILE*,char*); int __cdecl setvbuf(FILE*,char*,int,size_t); -int WINAPIV sprintf(char*,const char*,...); int WINAPIV sprintf_s(char*,size_t,const char*,...); int WINAPIV _scprintf(const char *, ...); int WINAPIV sscanf(const char*,const char*,...); @@ -204,6 +202,28 @@ static inline int unlink(const char* path) { return _unlink(path); } static inline int vsnprintf(char *buffer, size_t size, const char *format, __ms_va_list args) { return _vsnprintf(buffer,size,format,args); } #define snprintf _snprintf +static inline int WINAPIV _snprintf(char *buffer, size_t size, const char *format, ...) +{ + int ret; + __ms_va_list args; + + __ms_va_start(args, format); + ret = _vsnprintf(buffer, size, format, args); + __ms_va_end(args); + return ret; +} + +static inline int WINAPIV sprintf(char *buffer, const char *format, ...) +{ + int ret; + __ms_va_list args; + + __ms_va_start(args, format); + ret = _vsnprintf(buffer, (size_t)-1, format, args); + __ms_va_end(args); + return ret; +} + static inline wint_t fgetwchar(void) { return _fgetwchar(); } static inline wint_t fputwchar(wint_t wc) { return _fputwchar(wc); } static inline int getw(FILE* file) { return _getw(file); }