Jacek Caban : stdio.h: Add ucrt sscanf and sscanf_s declarations.

Alexandre Julliard julliard at winehq.org
Fri Feb 21 15:27:06 CST 2020


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Feb 21 16:41:43 2020 +0100

stdio.h: Add ucrt sscanf and sscanf_s declarations.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/msvcrt/stdio.h | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h
index 8c162d6f7d..f95bc253f2 100644
--- a/include/msvcrt/stdio.h
+++ b/include/msvcrt/stdio.h
@@ -136,8 +136,6 @@ int    __cdecl rename(const char*,const char*);
 void   __cdecl rewind(FILE*);
 void   __cdecl setbuf(FILE*,char*);
 int    __cdecl setvbuf(FILE*,char*,int,size_t);
-int    WINAPIV sscanf(const char*,const char*,...);
-int    WINAPIV sscanf_s(const char*,const char*,...);
 int    WINAPIV _snscanf_l(const char*,size_t,const char*,_locale_t,...);
 FILE*  __cdecl tmpfile(void);
 char*  __cdecl tmpnam(char*);
@@ -155,6 +153,7 @@ _ACRTIMP int __cdecl __stdio_common_vsprintf_s(unsigned __int64,char*,size_t,con
 _ACRTIMP int __cdecl __stdio_common_vsnprintf_s(unsigned __int64,char*,size_t,size_t,const char*,_locale_t,__ms_va_list);
 
 _ACRTIMP int __cdecl __stdio_common_vfscanf(unsigned __int64,FILE*,const char*,_locale_t,__ms_va_list);
+_ACRTIMP int __cdecl __stdio_common_vsscanf(unsigned __int64,char const*,size_t,const char*,_locale_t,__ms_va_list);
 
 static inline int __cdecl vsnprintf(char *buffer, size_t size, const char *format, __ms_va_list args)
 {
@@ -300,6 +299,28 @@ static inline int WINAPIV printf_s(const char *format, ...)
     return ret;
 }
 
+static inline int WINAPIV sscanf(const char *buffer, const char *format, ...)
+{
+    int ret;
+    __ms_va_list args;
+
+    __ms_va_start(args, format);
+    ret = __stdio_common_vsscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, buffer, -1, format, NULL, args);
+    __ms_va_end(args);
+    return ret;
+}
+
+static inline int WINAPIV sscanf_s(const char *buffer, const char *format, ...)
+{
+    int ret;
+    __ms_va_list args;
+
+    __ms_va_start(args, format);
+    ret = __stdio_common_vsscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, buffer, -1, format, NULL, args);
+    __ms_va_end(args);
+    return ret;
+}
+
 static inline int WINAPIV fscanf(FILE *file, const char *format, ...)
 {
     int ret;
@@ -370,6 +391,8 @@ _ACRTIMP int WINAPIV fscanf(FILE*,const char*,...);
 _ACRTIMP int WINAPIV fscanf_s(FILE*,const char*,...);
 _ACRTIMP int WINAPIV scanf(const char*,...);
 _ACRTIMP int WINAPIV scanf_s(const char*,...);
+_ACRTIMP int WINAPIV sscanf(const char*,const char*,...);
+_ACRTIMP int WINAPIV sscanf_s(const char*,const char*,...);
 
 #endif /* _UCRT */
 




More information about the wine-cvs mailing list