C99 vscanf-family functions are natively available since msvcr120.

This change allows to use native UCRT and msvcr120 C99 vscanf-family
functions.
---
 mingw-w64-crt/Makefile.am                    | 29 ++++++++++++++++----
 mingw-w64-crt/def-include/crt-aliases.def.in |  8 ++++++
 mingw-w64-crt/lib-common/msvcr120_app.def.in |  1 +
 mingw-w64-crt/lib32/msvcr120.def.in          |  1 +
 mingw-w64-crt/lib64/msvcr120.def.in          |  1 +
 mingw-w64-crt/libarm32/msvcr120.def.in       |  1 +
 6 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index c207b3bcabac..ae3b04c1e8a4 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -297,8 +297,26 @@ src_msvcrt_commonarm64=\
   $(src_msvcrt_common) \
   $(src_msvcrt_common_add_arm64)
 
+src_msvcrt_add_vscanf=\
+  stdio/scanf.S \
+  stdio/scanf2-argcount-char.c \
+  stdio/scanf2-argcount-wchar.c \
+  stdio/vfscanf.c \
+  stdio/vfscanf2.S \
+  stdio/vfwscanf.c \
+  stdio/vfwscanf2.S \
+  stdio/vscanf.c \
+  stdio/vscanf2.S \
+  stdio/vsscanf.c \
+  stdio/vsscanf2.S \
+  stdio/vswscanf.c \
+  stdio/vswscanf2.S \
+  stdio/vwscanf.c \
+  stdio/vwscanf2.S
+
 # Files included in libmsvcrt-os.a (for msvcrt.dll) on all archs
 src_msvcrt=\
+  $(src_msvcrt_add_vscanf) \
   misc/__sys_errlist.c \
   misc/__sys_nerr.c \
   misc/_configthreadlocale.c \
@@ -768,6 +786,7 @@ src_pre_msvcr100=\
   misc/imaxdiv.c
 
 src_pre_msvcr120=\
+  $(src_msvcrt_add_vscanf) \
   math/i386__copysignf.c \
   misc/isblank.c \
   misc/iswblank.c \
@@ -942,9 +961,7 @@ src_libmingwex=\
   ssp/memset_chk.c       ssp/stack_chk_fail.c       ssp/stack_chk_guard.c   
ssp/strcat_chk.c \
   ssp/stpcpy_chk.c       ssp/strcpy_chk.c           ssp/strncat_chk.c       
ssp/strncpy_chk.c \
   \
-  stdio/scanf2-argcount-char.c stdio/scanf2-argcount-wchar.c \
-  stdio/vfscanf2.S         stdio/vfwscanf2.S         stdio/vscanf2.S          
stdio/vsscanf2.S          stdio/vswscanf2.S \
-  stdio/vwscanf2.S         stdio/strtok_r.c          stdio/scanf.S \
+  stdio/strtok_r.c \
   stdio/_Exit.c            stdio/_findfirst64i32.c   stdio/_findnext64i32.c \
   stdio/_stat.c            stdio/_stat64i32.c        stdio/_wfindfirst64i32.c 
stdio/_wfindnext64i32.c \
   stdio/_wstat.c           stdio/_wstat64i32.c       stdio/asprintf.c \
@@ -960,9 +977,9 @@ src_libmingwex=\
   stdio/mingw_vfwscanf.c   stdio/mingw_vswscanf.c    stdio/mingw_vsscanf.c    
stdio/mingw_sformat.c     stdio/mingw_swformat.c  \
   \
   stdio/snprintf.c         stdio/snwprintf.c         stdio/truncate.c        \
-  stdio/ulltoa.c           stdio/ulltow.c            stdio/vasprintf.c        
stdio/vfscanf.c           stdio/vfwscanf.c        \
-  stdio/vscanf.c           stdio/vsnprintf.c         stdio/vsnwprintf.c        
stdio/vsscanf.c         \
-  stdio/vswscanf.c         stdio/vwscanf.c           stdio/wtoll.c            
stdio/mingw_asprintf.c    stdio/mingw_vasprintf.c
+  stdio/ulltoa.c           stdio/ulltow.c            stdio/vasprintf.c \
+  stdio/vsnprintf.c        stdio/vsnwprintf.c \
+  stdio/wtoll.c            stdio/mingw_asprintf.c    stdio/mingw_vasprintf.c
 
 # Include the default load config struct only for Control Flow Guard support.
 if CFGUARD
diff --git a/mingw-w64-crt/def-include/crt-aliases.def.in 
b/mingw-w64-crt/def-include/crt-aliases.def.in
index 48829497da0f..be873c0df376 100644
--- a/mingw-w64-crt/def-include/crt-aliases.def.in
+++ b/mingw-w64-crt/def-include/crt-aliases.def.in
@@ -545,6 +545,14 @@ __ms_vsprintf == vsprintf
 __ms_vwprintf == vwprintf
 __ms_wprintf == wprintf
 __ms_wscanf == wscanf
+#ifdef WITH_MS_VSCANF_ALIASES
+__ms_vfscanf == vfscanf
+__ms_vfwscanf == vfwscanf
+__ms_vscanf == vscanf
+__ms_vsscanf == vsscanf
+__ms_vswscanf == vswscanf
+__ms_vwscanf == vwscanf
+#endif
 #endif
 
 ; This is list of additional symbol aliases not available in any library as 
neither native symbols nor aliases
diff --git a/mingw-w64-crt/lib-common/msvcr120_app.def.in 
b/mingw-w64-crt/lib-common/msvcr120_app.def.in
index 4f17fb682340..c207c442fff6 100644
--- a/mingw-w64-crt/lib-common/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib-common/msvcr120_app.def.in
@@ -2335,4 +2335,5 @@ wscanf_s
 
 #define CRTAPP
 #define USE_WCSTOK_S_FOR_WCSTOK
+#define WITH_MS_VSCANF_ALIASES
 #include "crt-aliases.def.in"
diff --git a/mingw-w64-crt/lib32/msvcr120.def.in 
b/mingw-w64-crt/lib32/msvcr120.def.in
index 2432346e8ce7..5b4f5956fe3b 100644
--- a/mingw-w64-crt/lib32/msvcr120.def.in
+++ b/mingw-w64-crt/lib32/msvcr120.def.in
@@ -2297,4 +2297,5 @@ wscanf
 wscanf_s
 
 #define USE_WCSTOK_S_FOR_WCSTOK
+#define WITH_MS_VSCANF_ALIASES
 #include "crt-aliases.def.in"
diff --git a/mingw-w64-crt/lib64/msvcr120.def.in 
b/mingw-w64-crt/lib64/msvcr120.def.in
index 3a6bc1a115f8..a1335e059edc 100644
--- a/mingw-w64-crt/lib64/msvcr120.def.in
+++ b/mingw-w64-crt/lib64/msvcr120.def.in
@@ -2253,4 +2253,5 @@ wscanf
 wscanf_s
 
 #define USE_WCSTOK_S_FOR_WCSTOK
+#define WITH_MS_VSCANF_ALIASES
 #include "crt-aliases.def.in"
diff --git a/mingw-w64-crt/libarm32/msvcr120.def.in 
b/mingw-w64-crt/libarm32/msvcr120.def.in
index e43e29da9392..0f5c42508a2c 100644
--- a/mingw-w64-crt/libarm32/msvcr120.def.in
+++ b/mingw-w64-crt/libarm32/msvcr120.def.in
@@ -2221,4 +2221,5 @@ wscanf
 wscanf_s
 
 #define USE_WCSTOK_S_FOR_WCSTOK
+#define WITH_MS_VSCANF_ALIASES
 #include "crt-aliases.def.in"
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to