msvcrt: Implement _atol_l.

Signed-off-by: Hua Meng <161220092@smail.nju.edu.cn>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Hua Meng 2018-03-26 21:20:22 +02:00 committed by Alexandre Julliard
parent bae48da7c5
commit 2f9dd7f6cb
10 changed files with 26 additions and 9 deletions

View File

@ -7,7 +7,7 @@
@ cdecl -ret64 _atoi64(str) ucrtbase._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) ucrtbase._atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) ucrtbase._atol_l
@ cdecl _atoldbl(ptr str) ucrtbase._atoldbl
@ stub _atoldbl_l
@ cdecl -ret64 _atoll_l(str ptr) ucrtbase._atoll_l

View File

@ -699,7 +699,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
@ stub _atoldbl_l
@ cdecl _beep(long long) MSVCRT__beep

View File

@ -1047,7 +1047,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
@ stub _atoldbl_l
@ cdecl _beep(long long) MSVCRT__beep

View File

@ -1037,7 +1037,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
@ stub _atoldbl_l
@ cdecl -ret64 _atoll_l(str ptr) MSVCRT__atoll_l

View File

@ -1008,7 +1008,7 @@
@ cdecl -ret64 _atoi64(str) msvcr120._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) msvcr120._atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) msvcr120._atol_l
@ cdecl _atoldbl(ptr str) msvcr120._atoldbl
@ stub _atoldbl_l
@ cdecl -ret64 _atoll_l(str ptr) msvcr120._atoll_l

View File

@ -363,7 +363,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
@ stub _atoldbl_l
@ cdecl _beep(long long) MSVCRT__beep

View File

@ -347,7 +347,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
@ stub _atoldbl_l
@ cdecl _beep(long long) MSVCRT__beep

View File

@ -334,7 +334,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
# stub -ret64 _atoi64_l(str ptr)
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
# stub _atol_l(str ptr)
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
# stub _atoldbl_l(ptr str ptr)
@ cdecl _beep(long long) MSVCRT__beep

View File

@ -1068,6 +1068,23 @@ int CDECL MSVCRT_atoi(const char *str)
}
#endif
/******************************************************************
* _atol_l (MSVCRT.@)
*/
MSVCRT_long CDECL MSVCRT__atol_l(const char *str, MSVCRT__locale_t locale)
{
__int64 ret = MSVCRT_strtoi64_l(str, NULL, 10, locale);
if(ret > LONG_MAX) {
ret = LONG_MAX;
*MSVCRT__errno() = MSVCRT_ERANGE;
} else if(ret < LONG_MIN) {
ret = LONG_MIN;
*MSVCRT__errno() = MSVCRT_ERANGE;
}
return ret;
}
#if _MSVCR_VER>=120
/******************************************************************

View File

@ -198,7 +198,7 @@
@ cdecl -ret64 _atoi64(str) ntdll._atoi64
@ stub _atoi64_l
@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
@ stub _atol_l
@ cdecl _atol_l(str ptr) MSVCRT__atol_l
@ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
@ stub _atoldbl_l
@ cdecl -ret64 _atoll_l(str ptr) MSVCRT__atoll_l