Piotr Caban : msvcrt: Added _atoi_l implementation.

Alexandre Julliard julliard at winehq.org
Wed Dec 12 15:14:54 CST 2012


Module: wine
Branch: master
Commit: b5cf3057e97aa18f4525bd4819855efb60e09836
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b5cf3057e97aa18f4525bd4819855efb60e09836

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Dec 12 11:16:19 2012 +0100

msvcrt: Added _atoi_l implementation.

---

 dlls/msvcr100/msvcr100.spec |    2 +-
 dlls/msvcr80/msvcr80.spec   |    2 +-
 dlls/msvcr90/msvcr90.spec   |    2 +-
 dlls/msvcrt/msvcrt.spec     |    2 +-
 dlls/msvcrt/string.c        |   17 +++++++++++++++++
 5 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index c57b43d..44123a3 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -693,7 +693,7 @@
 @ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
 @ cdecl -ret64 _atoi64(str) msvcrt._atoi64
 @ stub _atoi64_l
-@ stub _atoi_l
+@ cdecl _atoi_l(str ptr) msvcrt._atoi_l
 @ stub _atol_l
 @ cdecl _atoldbl(ptr str) msvcrt._atoldbl
 @ stub _atoldbl_l
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 8c53751..91fe34a 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -349,7 +349,7 @@
 @ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
 @ cdecl -ret64 _atoi64(str) msvcrt._atoi64
 @ stub _atoi64_l
-@ stub _atoi_l
+@ cdecl _atoi_l(str ptr) msvcrt._atoi_l
 @ stub _atol_l
 @ cdecl _atoldbl(ptr str) msvcrt._atoldbl
 @ stub _atoldbl_l
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 500ed27..ae3dfa2 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -341,7 +341,7 @@
 @ cdecl _atoflt_l(ptr str ptr) msvcrt._atoflt_l
 @ cdecl -ret64 _atoi64(str) msvcrt._atoi64
 @ stub _atoi64_l
-@ stub _atoi_l
+@ cdecl _atoi_l(str ptr) msvcrt._atoi_l
 @ stub _atol_l
 @ cdecl _atoldbl(ptr str) msvcrt._atoldbl
 @ stub _atoldbl_l
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 239e820..6d46f82 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -306,7 +306,7 @@
 @ cdecl _atoflt_l(ptr str ptr) MSVCRT__atoflt_l
 @ cdecl -ret64 _atoi64(str) ntdll._atoi64
 # stub -ret64 _atoi64_l(str ptr)
-# stub _atoi_l(str ptr)
+@ cdecl _atoi_l(str ptr) MSVCRT__atoi_l
 # stub _atol_l(str ptr)
 @ cdecl _atoldbl(ptr str) MSVCRT__atoldbl
 # stub _atoldbl_l(ptr str ptr)
diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c
index ad33f6a..1e46488 100644
--- a/dlls/msvcrt/string.c
+++ b/dlls/msvcrt/string.c
@@ -915,6 +915,23 @@ __int64 CDECL MSVCRT_strtoi64(const char *nptr, char **endptr, int base)
 }
 
 /*********************************************************************
+ *  _atoi_l (MSVCRT.@)
+ */
+int MSVCRT__atoi_l(const char *str, MSVCRT__locale_t locale)
+{
+    __int64 ret = MSVCRT_strtoi64_l(str, NULL, 10, locale);
+
+    if(ret > INT_MAX) {
+        ret = INT_MAX;
+        *MSVCRT__errno() = MSVCRT_ERANGE;
+    } else if(ret < INT_MIN) {
+        ret = INT_MIN;
+        *MSVCRT__errno() = MSVCRT_ERANGE;
+    }
+    return ret;
+}
+
+/*********************************************************************
  *  _strtoui64_l (MSVCRT.@)
  *
  * FIXME: locale parameter is ignored




More information about the wine-cvs mailing list