Piotr Caban : msvcrt: Add _wcstol_l implementation.
Alexandre Julliard
julliard at winehq.org
Mon Jul 29 14:01:18 CDT 2013
Module: wine
Branch: master
Commit: 679542419abb285afc615b5286fbbd25082d5c64
URL: http://source.winehq.org/git/wine.git/?a=commit;h=679542419abb285afc615b5286fbbd25082d5c64
Author: Piotr Caban <piotr at codeweavers.com>
Date: Sun Jul 28 09:43:59 2013 +0200
msvcrt: Add _wcstol_l implementation.
---
dlls/msvcr100/msvcr100.spec | 2 +-
dlls/msvcr110/msvcr110.spec | 2 +-
dlls/msvcr80/msvcr80.spec | 2 +-
dlls/msvcr90/msvcr90.spec | 2 +-
dlls/msvcrt/msvcrt.spec | 2 +-
dlls/msvcrt/wcs.c | 18 ++++++++++++++++++
6 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index c71f7fa..9d4cc80 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -1505,7 +1505,7 @@
@ cdecl _wcstod_l(wstr ptr) msvcrt._wcstod_l
@ cdecl -ret64 _wcstoi64(wstr ptr long) msvcrt._wcstoi64
@ cdecl -ret64 _wcstoi64_l(wstr ptr long ptr) msvcrt._wcstoi64_l
-@ stub _wcstol_l
+@ cdecl _wcstol_l(wstr ptr long ptr) msvcrt._wcstol_l
@ cdecl _wcstombs_l(ptr ptr long ptr) msvcrt._wcstombs_l
@ cdecl _wcstombs_s_l(ptr ptr long wstr long ptr) msvcrt._wcstombs_s_l
@ cdecl -ret64 _wcstoui64(wstr ptr long) msvcrt._wcstoui64
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 40dd029..6e97edb 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -1868,7 +1868,7 @@
@ cdecl _wcstod_l(wstr ptr) msvcrt._wcstod_l
@ cdecl -ret64 _wcstoi64(wstr ptr long) msvcrt._wcstoi64
@ cdecl -ret64 _wcstoi64_l(wstr ptr long ptr) msvcrt._wcstoi64_l
-@ stub _wcstol_l
+@ cdecl _wcstol_l(wstr ptr long ptr) msvcrt._wcstol_l
@ cdecl _wcstombs_l(ptr ptr long ptr) msvcrt._wcstombs_l
@ cdecl _wcstombs_s_l(ptr ptr long wstr long ptr) msvcrt._wcstombs_s_l
@ cdecl -ret64 _wcstoui64(wstr ptr long) msvcrt._wcstoui64
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 68530bf..8d91d66 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1183,7 +1183,7 @@
@ cdecl _wcstod_l(wstr ptr) msvcrt._wcstod_l
@ cdecl -ret64 _wcstoi64(wstr ptr long) msvcrt._wcstoi64
@ cdecl -ret64 _wcstoi64_l(wstr ptr long ptr) msvcrt._wcstoi64_l
-@ stub _wcstol_l
+@ cdecl _wcstol_l(wstr ptr long ptr) msvcrt._wcstol_l
@ cdecl _wcstombs_l(ptr ptr long ptr) msvcrt._wcstombs_l
@ cdecl _wcstombs_s_l(ptr ptr long wstr long ptr) msvcrt._wcstombs_s_l
@ cdecl -ret64 _wcstoui64(wstr ptr long) msvcrt._wcstoui64
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 6a1657f..9469587 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1159,7 +1159,7 @@
@ cdecl _wcstod_l(wstr ptr) msvcrt._wcstod_l
@ cdecl -ret64 _wcstoi64(wstr ptr long) msvcrt._wcstoi64
@ cdecl -ret64 _wcstoi64_l(wstr ptr long ptr) msvcrt._wcstoi64_l
-@ stub _wcstol_l
+@ cdecl _wcstol_l(wstr ptr long ptr) msvcrt._wcstol_l
@ cdecl _wcstombs_l(ptr ptr long ptr) msvcrt._wcstombs_l
@ cdecl _wcstombs_s_l(ptr ptr long wstr long ptr) msvcrt._wcstombs_s_l
@ cdecl -ret64 _wcstoui64(wstr ptr long) msvcrt._wcstoui64
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 6a812a9..975afe0 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1123,7 +1123,7 @@
@ cdecl _wcstod_l(wstr ptr) MSVCRT__wcstod_l
@ cdecl -ret64 _wcstoi64(wstr ptr long) MSVCRT__wcstoi64
@ cdecl -ret64 _wcstoi64_l(wstr ptr long ptr) MSVCRT__wcstoi64_l
-# stub _wcstol_l(wstr ptr long ptr)
+@ cdecl _wcstol_l(wstr ptr long ptr) MSVCRT__wcstol_l
@ cdecl _wcstombs_l(ptr ptr long ptr) MSVCRT__wcstombs_l
@ cdecl _wcstombs_s_l(ptr ptr long wstr long ptr) MSVCRT__wcstombs_s_l
@ cdecl -ret64 _wcstoui64(wstr ptr long) MSVCRT__wcstoui64
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index dbb12dd..3df7c02 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1613,6 +1613,24 @@ __int64 CDECL MSVCRT__wcstoi64(const MSVCRT_wchar_t *nptr,
}
/*********************************************************************
+ * _wcstol_l (MSVCRT.@)
+ */
+MSVCRT_long CDECL MSVCRT__wcstol_l(const MSVCRT_wchar_t *s,
+ MSVCRT_wchar_t **end, int base, MSVCRT__locale_t locale)
+{
+ __int64 ret = MSVCRT__wcstoi64_l(s, end, base, locale);
+
+ if(ret > MSVCRT_LONG_MAX) {
+ ret = MSVCRT_LONG_MAX;
+ *MSVCRT__errno() = MSVCRT_ERANGE;
+ }else if(ret < MSVCRT_LONG_MIN) {
+ ret = MSVCRT_LONG_MIN;
+ *MSVCRT__errno() = MSVCRT_ERANGE;
+ }
+ return ret;
+}
+
+/*********************************************************************
* _wtoi_l (MSVCRT.@)
*/
int __cdecl MSVCRT__wtoi_l(const MSVCRT_wchar_t *str, MSVCRT__locale_t locale)
More information about the wine-cvs
mailing list