Jacek Caban : stdio.h: Provide sprintf and _snprintf as inline wrappers.

Alexandre Julliard julliard at winehq.org
Sun Feb 16 15:23:58 CST 2020


Module: wine
Branch: master
Commit: 84dbedc922dbfea6f8a0a562e9fb6142bc58f9da
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=84dbedc922dbfea6f8a0a562e9fb6142bc58f9da

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Feb 14 13:07:24 2020 +0100

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 <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 6166591d0c..b6375f71dc 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 d01e788f80..ecaa7fe611 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); }




More information about the wine-cvs mailing list