Commit b38fcabf authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msvcrt: Added fscanf_s(_l) implementation.

parent 17f486ba
...@@ -433,7 +433,7 @@ ...@@ -433,7 +433,7 @@
@ stub _freea_s @ stub _freea_s
@ stub _freefls @ stub _freefls
@ varargs _fscanf_l(ptr str ptr) msvcrt._fscanf_l @ varargs _fscanf_l(ptr str ptr) msvcrt._fscanf_l
@ stub _fscanf_s_l @ varargs _fscanf_s_l(ptr str ptr) msvcrt._fscanf_s_l
@ stub _fseek_nolock @ stub _fseek_nolock
@ stub _fseeki64 @ stub _fseeki64
@ stub _fseeki64_nolock @ stub _fseeki64_nolock
...@@ -1273,7 +1273,7 @@ ...@@ -1273,7 +1273,7 @@
@ stub freopen_s @ stub freopen_s
@ cdecl frexp(double ptr) msvcrt.frexp @ cdecl frexp(double ptr) msvcrt.frexp
@ varargs fscanf(ptr str) msvcrt.fscanf @ varargs fscanf(ptr str) msvcrt.fscanf
@ stub fscanf_s @ varargs fscanf_s(ptr str) msvcrt.fscanf_s
@ cdecl fseek(ptr long long) msvcrt.fseek @ cdecl fseek(ptr long long) msvcrt.fseek
@ cdecl fsetpos(ptr ptr) msvcrt.fsetpos @ cdecl fsetpos(ptr ptr) msvcrt.fsetpos
@ cdecl ftell(ptr) msvcrt.ftell @ cdecl ftell(ptr) msvcrt.ftell
......
...@@ -425,7 +425,7 @@ ...@@ -425,7 +425,7 @@
@ stub _freea_s @ stub _freea_s
@ stub _freefls @ stub _freefls
@ varargs _fscanf_l(ptr str ptr) msvcrt._fscanf_l @ varargs _fscanf_l(ptr str ptr) msvcrt._fscanf_l
@ stub _fscanf_s_l @ varargs _fscanf_s_l(ptr str ptr) msvcrt._fscanf_s_l
@ stub _fseek_nolock @ stub _fseek_nolock
@ stub _fseeki64 @ stub _fseeki64
@ stub _fseeki64_nolock @ stub _fseeki64_nolock
...@@ -1257,7 +1257,7 @@ ...@@ -1257,7 +1257,7 @@
@ stub freopen_s @ stub freopen_s
@ cdecl frexp(double ptr) msvcrt.frexp @ cdecl frexp(double ptr) msvcrt.frexp
@ varargs fscanf(ptr str) msvcrt.fscanf @ varargs fscanf(ptr str) msvcrt.fscanf
@ stub fscanf_s @ varargs fscanf_s(ptr str) msvcrt.fscanf_s
@ cdecl fseek(ptr long long) msvcrt.fseek @ cdecl fseek(ptr long long) msvcrt.fseek
@ cdecl fsetpos(ptr ptr) msvcrt.fsetpos @ cdecl fsetpos(ptr ptr) msvcrt.fsetpos
@ cdecl ftell(ptr) msvcrt.ftell @ cdecl ftell(ptr) msvcrt.ftell
......
...@@ -395,7 +395,8 @@ ...@@ -395,7 +395,8 @@
# stub _freea # stub _freea
# stub _freea_s # stub _freea_s
# stub _fscanf_l # stub _fscanf_l
# stub _fscanf_s_l @ varargs _fscanf_l(ptr str ptr) MSVCRT__fscanf_l
@ varargs _fscanf_s_l(ptr str ptr) MSVCRT__fscanf_s_l
# stub _fseeki64 # stub _fseeki64
@ cdecl _fsopen(str str long) MSVCRT__fsopen @ cdecl _fsopen(str str long) MSVCRT__fsopen
@ cdecl _fstat(long ptr) MSVCRT__fstat @ cdecl _fstat(long ptr) MSVCRT__fstat
...@@ -1203,7 +1204,7 @@ ...@@ -1203,7 +1204,7 @@
# stub freopen_s # stub freopen_s
@ cdecl frexp(double ptr) MSVCRT_frexp @ cdecl frexp(double ptr) MSVCRT_frexp
@ varargs fscanf(ptr str) MSVCRT_fscanf @ varargs fscanf(ptr str) MSVCRT_fscanf
# stub fscanf_s @ varargs fscanf_s(ptr str) MSVCRT_fscanf_s
@ cdecl fseek(ptr long long) MSVCRT_fseek @ cdecl fseek(ptr long long) MSVCRT_fseek
@ cdecl fsetpos(ptr ptr) MSVCRT_fsetpos @ cdecl fsetpos(ptr ptr) MSVCRT_fsetpos
@ cdecl ftell(ptr) MSVCRT_ftell @ cdecl ftell(ptr) MSVCRT_ftell
...@@ -1282,12 +1283,6 @@ ...@@ -1282,12 +1283,6 @@
@ cdecl puts(str) MSVCRT_puts @ cdecl puts(str) MSVCRT_puts
@ cdecl putwc(long ptr) MSVCRT_fputwc @ cdecl putwc(long ptr) MSVCRT_fputwc
@ cdecl putwchar(long) _fputwchar @ cdecl putwchar(long) _fputwchar
# stub _free_dbg
# stub _freea
# stub _freea_s
@ varargs _fscanf_l(ptr str ptr) MSVCRT__fscanf_l
# stub _fscanf_s_l
# stub _fseeki64
@ cdecl qsort(ptr long long ptr) ntdll.qsort @ cdecl qsort(ptr long long ptr) ntdll.qsort
# stub qsort_s # stub qsort_s
@ cdecl raise(long) MSVCRT_raise @ cdecl raise(long) MSVCRT_raise
......
...@@ -65,6 +65,9 @@ static int wchar2digit(MSVCRT_wchar_t c, int base) { ...@@ -65,6 +65,9 @@ static int wchar2digit(MSVCRT_wchar_t c, int base) {
#undef SECURE #undef SECURE
#include "scanf.h" #include "scanf.h"
#define SECURE 1
#include "scanf.h"
/* vfwscanf_l */ /* vfwscanf_l */
#define WIDE_SCANF 1 #define WIDE_SCANF 1
#undef CONSOLE #undef CONSOLE
...@@ -124,6 +127,35 @@ int CDECL MSVCRT__fscanf_l(MSVCRT_FILE *file, const char *format, ...@@ -124,6 +127,35 @@ int CDECL MSVCRT__fscanf_l(MSVCRT_FILE *file, const char *format,
} }
/********************************************************************* /*********************************************************************
* fscanf_s (MSVCRT.@)
*/
int CDECL MSVCRT_fscanf_s(MSVCRT_FILE *file, const char *format, ...)
{
__ms_va_list valist;
int res;
__ms_va_start(valist, format);
res = MSVCRT_vfscanf_s_l(file, format, NULL, valist);
__ms_va_end(valist);
return res;
}
/*********************************************************************
* _fscanf_s_l (MSVCRT.@)
*/
int CDECL MSVCRT__fscanf_s_l(MSVCRT_FILE *file, const char *format,
MSVCRT__locale_t locale, ...)
{
__ms_va_list valist;
int res;
__ms_va_start(valist, locale);
res = MSVCRT_vfscanf_s_l(file, format, locale, valist);
__ms_va_end(valist);
return res;
}
/*********************************************************************
* scanf (MSVCRT.@) * scanf (MSVCRT.@)
*/ */
int CDECL MSVCRT_scanf(const char *format, ...) int CDECL MSVCRT_scanf(const char *format, ...)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment