From aff5d2c1f3d70b94feaaf964b887e4f11727c729 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Thu, 18 Feb 2016 16:09:55 +0100 Subject: [PATCH] msvcrt: Don't use isdigit in places where only 0-9 digits are handled. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- 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 59da5bd4db3..1946b27ff21 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 b6946a30a44..0f80d3bea4f 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='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='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'; -- 2.11.4.GIT