Module: wine Branch: master Commit: 5e10634a5af26326dac3db6f6667a46e452d29f9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e10634a5af26326dac3db6f66...
Author: Piotr Caban piotr@codeweavers.com Date: Mon Dec 21 11:22:45 2015 +0100
msvcrt: Add _strtol_l implementation.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
.../api-ms-win-crt-convert-l1-1-0.spec | 2 +- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr120_app/msvcr120_app.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/msvcrt.spec | 2 +- dlls/msvcrt/string.c | 15 ++++++++++++--- dlls/ucrtbase/ucrtbase.spec | 2 +- 10 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/dlls/api-ms-win-crt-convert-l1-1-0/api-ms-win-crt-convert-l1-1-0.spec b/dlls/api-ms-win-crt-convert-l1-1-0/api-ms-win-crt-convert-l1-1-0.spec index 40b131a..319bff5 100644 --- a/dlls/api-ms-win-crt-convert-l1-1-0/api-ms-win-crt-convert-l1-1-0.spec +++ b/dlls/api-ms-win-crt-convert-l1-1-0/api-ms-win-crt-convert-l1-1-0.spec @@ -34,7 +34,7 @@ @ cdecl -ret64 _strtoi64(str ptr long) ucrtbase._strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) ucrtbase._strtoi64_l @ stub _strtoimax_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) ucrtbase._strtol_l @ stub _strtold_l @ cdecl -ret64 _strtoll_l(str ptr long ptr) ucrtbase._strtoll_l @ cdecl -ret64 _strtoui64(str ptr long) ucrtbase._strtoui64 diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 8ceecc9..56d15bd 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1364,7 +1364,7 @@ @ cdecl _strtod_l(str ptr ptr) MSVCRT_strtod_l @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 @ cdecl -ret64 _strtoui64_l(str ptr long ptr) MSVCRT_strtoui64_l @ cdecl _strtoul_l(str ptr long ptr) MSVCRT_strtoul_l diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index e42ec11..4b9f2a5 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1722,7 +1722,7 @@ @ cdecl _strtod_l(str ptr ptr) MSVCRT_strtod_l @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 @ cdecl -ret64 _strtoui64_l(str ptr long ptr) MSVCRT_strtoui64_l @ cdecl _strtoul_l(str ptr long ptr) MSVCRT_strtoul_l diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 9f04cbf..0fa1e14 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1735,7 +1735,7 @@ @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l @ stub _strtoimax_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ stub _strtold_l @ cdecl -ret64 _strtoll_l(str ptr long ptr) MSVCRT_strtoi64_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index d3591c1..c104a7b 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -1446,7 +1446,7 @@ @ cdecl -ret64 _strtoi64(str ptr long) msvcr120._strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) msvcr120._strtoi64_l @ stub _strtoimax_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) msvcr120._strtol_l @ stub _strtold_l @ cdecl -ret64 _strtoll_l(str ptr long ptr) msvcr120._strtoll_l @ cdecl -ret64 _strtoui64(str ptr long) msvcr120._strtoui64 diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index e83e056..6de0c3b 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -1045,7 +1045,7 @@ @ cdecl _strtod_l(str ptr ptr) MSVCRT_strtod_l @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 @ cdecl -ret64 _strtoui64_l(str ptr long ptr) MSVCRT_strtoui64_l @ cdecl _strtoul_l(str ptr long ptr) MSVCRT_strtoul_l diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 9aef185..f2de405 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -1019,7 +1019,7 @@ @ cdecl _strtod_l(str ptr ptr) MSVCRT_strtod_l @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 @ cdecl -ret64 _strtoui64_l(str ptr long ptr) MSVCRT_strtoui64_l @ cdecl _strtoul_l(str ptr long ptr) MSVCRT_strtoul_l diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index c1f41da..2bbf6d6 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -980,7 +980,7 @@ @ cdecl _strtod_l(str ptr ptr) MSVCRT_strtod_l @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l -# stub _strtol_l(str ptr long ptr) +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64 @ cdecl -ret64 _strtoui64_l(str ptr long ptr) MSVCRT_strtoui64_l @ cdecl _strtoul_l(str ptr long ptr) MSVCRT_strtoul_l diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c index dde95ac..f44ac52 100644 --- a/dlls/msvcrt/string.c +++ b/dlls/msvcrt/string.c @@ -1018,11 +1018,12 @@ int CDECL MSVCRT_atoi(const char *str) #endif
/****************************************************************** - * strtol (MSVCRT.@) + * _strtol_l (MSVCRT.@) */ -MSVCRT_long CDECL MSVCRT_strtol(const char* nptr, char** end, int base) +MSVCRT_long CDECL MSVCRT__strtol_l(const char* nptr, + char** end, int base, MSVCRT__locale_t locale) { - __int64 ret = MSVCRT_strtoi64_l(nptr, end, base, NULL); + __int64 ret = MSVCRT_strtoi64_l(nptr, end, base, locale);
if(ret > MSVCRT_LONG_MAX) { ret = MSVCRT_LONG_MAX; @@ -1036,6 +1037,14 @@ MSVCRT_long CDECL MSVCRT_strtol(const char* nptr, char** end, int base) }
/****************************************************************** + * strtol (MSVCRT.@) + */ +MSVCRT_long CDECL MSVCRT_strtol(const char* nptr, char** end, int base) +{ + return MSVCRT__strtol_l(nptr, end, base, NULL); +} + +/****************************************************************** * _strtoul_l (MSVCRT.@) */ MSVCRT_ulong CDECL MSVCRT_strtoul_l(const char* nptr, char** end, int base, MSVCRT__locale_t locale) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index c3f76d1..336b87e 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -1953,7 +1953,7 @@ @ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64 @ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l @ stub _strtoimax_l -@ stub _strtol_l +@ cdecl _strtol_l(str ptr long ptr) MSVCRT__strtol_l @ stub _strtold_l @ cdecl -ret64 _strtoll_l(str ptr long ptr) MSVCRT_strtoi64_l @ cdecl -ret64 _strtoui64(str ptr long) MSVCRT_strtoui64