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