[PATCH] msvcr120: Implement atoll, _atoll_l, _wtoll, _wtoll_l.

Rafał Harabień rafalh1992 at o2.pl
Sun Feb 7 16:23:48 CST 2016


---
 dlls/msvcr120/msvcr120.spec         |  8 ++++----
 dlls/msvcr120_app/msvcr120_app.spec |  8 ++++----
 dlls/msvcrt/string.c                | 16 ++++++++++++++++
 dlls/msvcrt/wcs.c                   | 16 ++++++++++++++++
 4 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 9931820..5f6533c 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1040,7 +1040,7 @@
 @ stub _atol_l
 @ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
 @ stub _atoldbl_l
-@ stub _atoll_l
+@ cdecl -ret64 _atoll_l(str ptr) MSVCRT__atoll_l
 @ cdecl _beep(long long) MSVCRT__beep
 @ cdecl _beginthread(ptr long ptr)
 @ cdecl _beginthreadex(ptr long ptr ptr long ptr)
@@ -1999,8 +1999,8 @@
 @ cdecl _wtoi_l(wstr ptr) MSVCRT__wtoi_l
 @ cdecl _wtol(wstr) MSVCRT__wtol
 @ cdecl _wtol_l(wstr ptr) MSVCRT__wtol_l
-@ stub _wtoll
-@ stub _wtoll_l
+@ cdecl -ret64 _wtoll(wstr) MSVCRT__wtoll
+@ cdecl -ret64 _wtoll_l(wstr ptr) MSVCRT__wtoll_l
 @ cdecl _wunlink(wstr) MSVCRT__wunlink
 @ cdecl _wutime32(wstr ptr)
 @ cdecl _wutime64(wstr ptr)
@@ -2032,7 +2032,7 @@
 @ cdecl atof(str) MSVCRT_atof
 @ cdecl atoi(str) MSVCRT_atoi
 @ cdecl atol(str) ntdll.atol
-@ stub atoll
+@ cdecl -ret64 atoll(str) MSVCRT_atoll
 @ cdecl bsearch(ptr ptr long long ptr) MSVCRT_bsearch
 @ cdecl bsearch_s(ptr ptr long long ptr ptr) MSVCRT_bsearch_s
 @ cdecl btowc(long) MSVCRT_btowc
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index 50066ed..f938eff 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -1011,7 +1011,7 @@
 @ stub _atol_l
 @ cdecl _atoldbl(ptr str) msvcr120._atoldbl
 @ stub _atoldbl_l
-@ stub _atoll_l
+@ cdecl -ret64 _atoll_l(str ptr) msvcr120._atoll_l
 @ cdecl _byteswap_uint64(int64) msvcr120._byteswap_uint64
 @ cdecl _byteswap_ulong(long) msvcr120._byteswap_ulong
 @ cdecl _byteswap_ushort(long) msvcr120._byteswap_ushort
@@ -1665,8 +1665,8 @@
 @ cdecl _wtoi_l(wstr ptr) msvcr120._wtoi_l
 @ cdecl _wtol(wstr) msvcr120._wtol
 @ cdecl _wtol_l(wstr ptr) msvcr120._wtol_l
-@ stub _wtoll
-@ stub _wtoll_l
+@ cdecl -ret64 _wtoll(wstr) msvcr120._wtoll
+@ cdecl -ret64 _wtoll_l(wstr ptr) msvcr120._wtoll_l
 @ cdecl _wunlink(wstr) msvcr120._wunlink
 @ cdecl _wutime32(wstr ptr) msvcr120._wutime32
 @ cdecl _wutime64(wstr ptr) msvcr120._wutime64
@@ -1698,7 +1698,7 @@
 @ cdecl atof(str) msvcr120.atof
 @ cdecl atoi(str) msvcr120.atoi
 @ cdecl atol(str) msvcr120.atol
-@ stub atoll
+@ cdecl -ret64 atoll(str) msvcr120.atoll
 @ cdecl bsearch(ptr ptr long long ptr) msvcr120.bsearch
 @ cdecl bsearch_s(ptr ptr long long ptr ptr) msvcr120.bsearch_s
 @ cdecl btowc(long) msvcr120.btowc
diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c
index f44ac52..b5ee29d 100644
--- a/dlls/msvcrt/string.c
+++ b/dlls/msvcrt/string.c
@@ -1018,6 +1018,22 @@ int CDECL MSVCRT_atoi(const char *str)
 #endif
 
 /******************************************************************
+ *      _atoll_l (MSVCRT.@)
+ */
+MSVCRT_longlong CDECL MSVCRT__atoll_l(const char* str, MSVCRT__locale_t locale)
+{
+    return MSVCRT_strtoi64_l(str, NULL, 10, locale);
+}
+
+/******************************************************************
+ *      atoll (MSVCRT.@)
+ */
+MSVCRT_longlong CDECL MSVCRT_atoll(const char* str)
+{
+    return MSVCRT__atoll_l(str, NULL);
+}
+
+/******************************************************************
  *		_strtol_l (MSVCRT.@)
  */
 MSVCRT_long CDECL MSVCRT__strtol_l(const char* nptr,
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 56625e9..f3e1932 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -2083,6 +2083,22 @@ MSVCRT_long __cdecl MSVCRT__wtol(const MSVCRT_wchar_t *str)
 }
 
 /*********************************************************************
+ *  _wtoll_l (MSVCRT.@)
+ */
+MSVCRT_longlong __cdecl MSVCRT__wtoll_l(const MSVCRT_wchar_t *str, MSVCRT__locale_t locale)
+{
+    return MSVCRT__wcstoi64_l(str, NULL, 10, locale);
+}
+
+/*********************************************************************
+ *  _wtoll (MSVCRT.@)
+ */
+MSVCRT_longlong __cdecl MSVCRT__wtoll(const MSVCRT_wchar_t *str)
+{
+    return MSVCRT__wtoll_l(str, NULL);
+}
+
+/*********************************************************************
  *  _wcstoui64_l (MSVCRT.@)
  *
  * FIXME: locale parameter is ignored
-- 
1.9.1




More information about the wine-patches mailing list