about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt1
-rw-r--r--src/wrapped/generated/wrappedlibctypes.h1
-rwxr-xr-xsrc/wrapped/wrappedlibc.c13
-rwxr-xr-xsrc/wrapped/wrappedlibc_private.h2
4 files changed, 16 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 70264ae6..f602bc7e 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -2727,6 +2727,7 @@ wrappedlibc:
   - vfscanf
   - vsprintf
   - vsscanf
+  - vswscanf
 - iFpOu:
   - __open
   - open
diff --git a/src/wrapped/generated/wrappedlibctypes.h b/src/wrapped/generated/wrappedlibctypes.h
index 700abfce..2e0d5a12 100644
--- a/src/wrapped/generated/wrappedlibctypes.h
+++ b/src/wrapped/generated/wrappedlibctypes.h
@@ -171,6 +171,7 @@ typedef int64_t (*iFpippppp_t)(void*, int64_t, void*, void*, void*, void*, void*
 	GO(vfscanf, iFppA_t) \
 	GO(vsprintf, iFppA_t) \
 	GO(vsscanf, iFppA_t) \
+	GO(vswscanf, iFppA_t) \
 	GO(__open, iFpOu_t) \
 	GO(open, iFpOu_t) \
 	GO(open64, iFpOu_t) \
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index bbb72c3b..81726f3f 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -743,6 +743,19 @@ EXPORT int my_vsscanf(x64emu_t* emu, void* stream, void* fmt, x64_va_list_t b)
 }
 
 EXPORT int my__vsscanf(x64emu_t* emu, void* stream, void* fmt, void* b) __attribute__((alias("my_vsscanf")));
+
+EXPORT int my_vswscanf(x64emu_t* emu, void* stream, void* fmt, x64_va_list_t b)
+{
+    (void)emu;
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(b);
+    #else
+    myStackAlignScanfWValist(emu, (const char*)fmt, emu->scratch, b);
+    PREPARE_VALIST;
+    #endif
+    return vswscanf(stream, fmt, VARARGS);
+}
+
 EXPORT int my_sscanf(x64emu_t* emu, void* stream, void* fmt, uint64_t* b)
 {
     myStackAlignScanf(emu, (const char*)fmt, b, emu->scratch, 2);
diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h
index e30c647e..a0f15231 100755
--- a/src/wrapped/wrappedlibc_private.h
+++ b/src/wrapped/wrappedlibc_private.h
@@ -2064,7 +2064,7 @@ GOWM(__vsscanf, iFEppp)
 GOWM(vsscanf, iFEppA)
 GOWM(vswprintf, iFEpLpA)
 GOWM(__vswprintf_chk, iFEpuvvppp)
-//GO(vswscanf, iFppA)
+GOM(vswscanf, iFEppA)
 GOM(vsyslog, vFEipA)
 GOM(__vsyslog_chk, vFEiipA)
 //GO(vtimes, // Deprecated