diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 08a372d25fd..84e9ff1979c 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -341,7 +341,7 @@ @ cdecl _create_locale(long str) msvcrt._create_locale @ stub _crt_debugger_hook @ varargs _cscanf(str) msvcrt._cscanf -@ stub _cscanf_l +@ varargs _cscanf_l(str ptr) msvcrt._cscanf_l @ stub _cscanf_s @ stub _cscanf_s_l @ cdecl _ctime32(ptr) msvcrt._ctime32 diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 355bfe42f64..a847cfe6399 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -333,7 +333,7 @@ @ cdecl _create_locale(long str) msvcrt._create_locale @ stub _crt_debugger_hook @ varargs _cscanf(str) msvcrt._cscanf -@ stub _cscanf_l +@ varargs _cscanf_l(str ptr) msvcrt._cscanf_l @ stub _cscanf_s @ stub _cscanf_s_l @ cdecl _ctime32(ptr) msvcrt._ctime32 diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 84298e711c8..d3ad27383db 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -314,7 +314,7 @@ # stub _crtBreakAlloc # stub _crtDbgFlag @ varargs _cscanf(str) -# stub _cscanf_l +@ varargs _cscanf_l(str ptr) # stub _cscanf_s # stub _cscanf_s_l @ cdecl _ctime32(ptr) MSVCRT__ctime32 diff --git a/dlls/msvcrt/scanf.c b/dlls/msvcrt/scanf.c index 1f7cfefcfd9..48450198c73 100644 --- a/dlls/msvcrt/scanf.c +++ b/dlls/msvcrt/scanf.c @@ -274,3 +274,17 @@ int CDECL _cscanf(const char *format, ...) __ms_va_end(valist); return res; } + +/********************************************************************* + * _cscanf_l (MSVCRT.@) + */ +int CDECL _cscanf_l(const char *format, MSVCRT__locale_t locale, ...) +{ + __ms_va_list valist; + int res; + + __ms_va_start(valist, locale); + res = MSVCRT_vcscanf_l(format, locale, valist); + __ms_va_end(valist); + return res; +}