Piotr Caban : msvcrt: Don' t use isdigit in places where only 0-9 digits are handled.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Feb 19 08:56:21 CST 2016


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Feb 18 16:09:55 2016 +0100

msvcrt: Don't use isdigit in places where only 0-9 digits are handled.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcrt/string.c | 20 ++++++++++----------
 dlls/msvcrt/wcs.c    | 16 ++++++++--------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c
index 59da5bd..1946b27 100644
--- a/dlls/msvcrt/string.c
+++ b/dlls/msvcrt/string.c
@@ -364,12 +364,12 @@ static double strtod_helper(const char *str, char **end, MSVCRT__locale_t locale
     }
 #endif
 
-    while(isdigit(*p) ||
+    while((*p>='0' && *p<='9') ||
           (base == 16 && ((*p >= 'a' && *p <= 'f') || (*p >= 'A' && *p <= 'F')))) {
         char c = *p++;
         int val;
         found_digit = TRUE;
-        if (isdigit(c))
+        if (c>='0' && c<='9')
             val = c - '0';
         else if (c >= 'a' && c <= 'f')
             val = 10 + c - 'a';
@@ -382,7 +382,7 @@ static double strtod_helper(const char *str, char **end, MSVCRT__locale_t locale
         } else
             d = hlp;
     }
-    while(isdigit(*p) ||
+    while((*p>='0' && *p<='9') ||
           (base == 16 && ((*p >= 'a' && *p <= 'f') || (*p >= 'A' && *p <= 'F')))) {
         exp++;
         p++;
@@ -391,12 +391,12 @@ static double strtod_helper(const char *str, char **end, MSVCRT__locale_t locale
     if(*p == *locinfo->lconv->decimal_point)
         p++;
 
-    while(isdigit(*p) ||
+    while((*p>='0' && *p<='9') ||
           (base == 16 && ((*p >= 'a' && *p <= 'f') || (*p >= 'A' && *p <= 'F')))) {
         char c = *p++;
         int val;
         found_digit = TRUE;
-        if (isdigit(c))
+        if (c>='0' && c<='9')
             val = c - '0';
         else if (c >= 'a' && c <= 'f')
             val = 10 + c - 'a';
@@ -408,7 +408,7 @@ static double strtod_helper(const char *str, char **end, MSVCRT__locale_t locale
         d = hlp;
         exp--;
     }
-    while(isdigit(*p) ||
+    while((*p>='0' && *p<='9') ||
           (base == 16 && ((*p >= 'a' && *p <= 'f') || (*p >= 'A' && *p <= 'F'))))
         p++;
 
@@ -432,8 +432,8 @@ static double strtod_helper(const char *str, char **end, MSVCRT__locale_t locale
         } else if(*p == '+')
             p++;
 
-        if(isdigit(*p)) {
-            while(isdigit(*p)) {
+        if(*p>='0' && *p<='9') {
+            while(*p>='0' && *p<='9') {
                 if(e>INT_MAX/10 || (e=e*10+*p-'0')<0)
                     e = INT_MAX;
                 p++;
@@ -925,7 +925,7 @@ __int64 CDECL MSVCRT_strtoi64_l(const char *nptr, char **endptr, int base, MSVCR
         char cur = tolower(*nptr);
         int v;
 
-        if(isdigit(cur)) {
+        if(cur>='0' && cur<='9') {
             if(cur >= '0'+base)
                 break;
             v = cur-'0';
@@ -1128,7 +1128,7 @@ unsigned __int64 CDECL MSVCRT_strtoui64_l(const char *nptr, char **endptr, int b
         char cur = tolower(*nptr);
         int v;
 
-        if(isdigit(cur)) {
+        if(cur>='0' && cur<='9') {
             if(cur >= '0'+base)
                 break;
             v = *nptr-'0';
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index b6946a3..0f80d3b 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -374,7 +374,7 @@ double CDECL MSVCRT__wcstod_l(const MSVCRT_wchar_t* str, MSVCRT_wchar_t** end,
     } else  if(*p == '+')
         p++;
 
-    while(isdigitW(*p)) {
+    while(*p>='0' && *p<='9') {
         found_digit = TRUE;
         hlp = d*10+*(p++)-'0';
         if(d>MSVCRT_UI64_MAX/10 || hlp<d) {
@@ -383,14 +383,14 @@ double CDECL MSVCRT__wcstod_l(const MSVCRT_wchar_t* str, MSVCRT_wchar_t** end,
         } else
             d = hlp;
     }
-    while(isdigitW(*p)) {
+    while(*p>='0' && *p<='9') {
         exp++;
         p++;
     }
     if(*p == *locinfo->lconv->decimal_point)
         p++;
 
-    while(isdigitW(*p)) {
+    while(*p>='0' && *p<='9') {
         found_digit = TRUE;
         hlp = d*10+*(p++)-'0';
         if(d>MSVCRT_UI64_MAX/10 || hlp<d)
@@ -399,7 +399,7 @@ double CDECL MSVCRT__wcstod_l(const MSVCRT_wchar_t* str, MSVCRT_wchar_t** end,
         d = hlp;
         exp--;
     }
-    while(isdigitW(*p))
+    while(*p>='0' && *p<='9')
         p++;
 
     if(!found_digit) {
@@ -418,8 +418,8 @@ double CDECL MSVCRT__wcstod_l(const MSVCRT_wchar_t* str, MSVCRT_wchar_t** end,
         } else if(*p == '+')
             p++;
 
-        if(isdigitW(*p)) {
-            while(isdigitW(*p)) {
+        if(*p>='0' && *p<='9') {
+            while(*p>='0' && *p<='9') {
                 if(e>INT_MAX/10 || (e=e*10+*p-'0')<0)
                     e = INT_MAX;
                 p++;
@@ -1974,7 +1974,7 @@ __int64 CDECL MSVCRT__wcstoi64_l(const MSVCRT_wchar_t *nptr,
         MSVCRT_wchar_t cur = tolowerW(*nptr);
         int v;
 
-        if(isdigitW(cur)) {
+        if(cur>='0' && cur<='9') {
             if(cur >= '0'+base)
                 break;
             v = cur-'0';
@@ -2139,7 +2139,7 @@ unsigned __int64 CDECL MSVCRT__wcstoui64_l(const MSVCRT_wchar_t *nptr,
         MSVCRT_wchar_t cur = tolowerW(*nptr);
         int v;
 
-        if(isdigitW(cur)) {
+        if(cur>='0' && cur<='9') {
             if(cur >= '0'+base)
                 break;
             v = *nptr-'0';




More information about the wine-cvs mailing list