Piotr Caban : msvcrt: Added _wcstoul_l implementation.
Alexandre Julliard
julliard at winehq.org
Wed Mar 27 15:40:07 CDT 2013
Module: wine
Branch: master
Commit: 8f9b0abf729f610310f3fd0308386554a2b57297
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8f9b0abf729f610310f3fd0308386554a2b57297
Author: Piotr Caban <piotr at codeweavers.com>
Date: Wed Mar 27 16:13:21 2013 +0100
msvcrt: Added _wcstoul_l implementation.
---
dlls/msvcrt/msvcrt.spec | 4 ++--
dlls/msvcrt/wcs.c | 23 +++++++++++++++++++++++
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index c992f7f..1236b58 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1124,7 +1124,7 @@
@ cdecl _wcstombs_s_l(ptr ptr long wstr long ptr) MSVCRT__wcstombs_s_l
@ cdecl -ret64 _wcstoui64(wstr ptr long) MSVCRT__wcstoui64
@ cdecl -ret64 _wcstoui64_l(wstr ptr long ptr) MSVCRT__wcstoui64_l
-# stub _wcstoul_l(wstr ptr long ptr)
+@ cdecl _wcstoul_l(wstr ptr long ptr) MSVCRT__wcstoul_l
@ cdecl _wcsupr(wstr) ntdll._wcsupr
# stub _wcsupr_l(wstr ptr)
@ cdecl _wcsupr_s(wstr long) MSVCRT__wcsupr_s
@@ -1501,7 +1501,7 @@
@ cdecl wcstol(wstr ptr long) ntdll.wcstol
@ cdecl wcstombs(ptr ptr long) MSVCRT_wcstombs
@ cdecl wcstombs_s(ptr ptr long wstr long) MSVCRT_wcstombs_s
-@ cdecl wcstoul(wstr ptr long) ntdll.wcstoul
+@ cdecl wcstoul(wstr ptr long) MSVCRT_wcstoul
@ stub wcsxfrm(ptr wstr long)
@ cdecl wctob(long) MSVCRT_wctob
@ cdecl wctomb(ptr long) MSVCRT_wctomb
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 6e7c479..7408bec 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1586,6 +1586,29 @@ unsigned __int64 CDECL MSVCRT__wcstoui64(const MSVCRT_wchar_t *nptr,
return MSVCRT__wcstoui64_l(nptr, endptr, base, NULL);
}
+/*********************************************************************
+ * _wcstoul_l (MSVCRT.@)
+ */
+MSVCRT_ulong __cdecl MSVCRT__wcstoul_l(const MSVCRT_wchar_t *s,
+ MSVCRT_wchar_t **end, int base, MSVCRT__locale_t locale)
+{
+ __int64 ret = MSVCRT__wcstoui64_l(s, end, base, locale);
+
+ if(ret > MSVCRT_ULONG_MAX) {
+ ret = MSVCRT_ULONG_MAX;
+ *MSVCRT__errno() = MSVCRT_ERANGE;
+ }
+ return ret;
+}
+
+/*********************************************************************
+ * wcstoul (MSVCRT.@)
+ */
+MSVCRT_ulong __cdecl MSVCRT_wcstoul(const MSVCRT_wchar_t *s, MSVCRT_wchar_t **end, int base)
+{
+ return MSVCRT__wcstoul_l(s, end, base, NULL);
+}
+
/******************************************************************
* wcsnlen (MSVCRT.@)
*/
More information about the wine-cvs
mailing list