Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/kernelbase/string.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-)
diff --git a/dlls/kernelbase/string.c b/dlls/kernelbase/string.c index 4991ba3fd1..8b3d94a9e6 100644 --- a/dlls/kernelbase/string.c +++ b/dlls/kernelbase/string.c @@ -58,52 +58,46 @@ DWORD WINAPI StrCmpNICW(const WCHAR *str, const WCHAR *cmp, DWORD len) return StrCmpNIW(str, cmp, len); }
-BOOL WINAPI IsCharBlankW(WCHAR wc) +static WORD get_char_type(char c) { - WORD type; + WORD type = 0; + GetStringTypeA(GetSystemDefaultLCID(), CT_CTYPE1, &c, 1, &type); + return type; +}
- return GetStringTypeW(CT_CTYPE1, &wc, 1, &type) && (type & C1_BLANK); +BOOL WINAPI IsCharBlankW(WCHAR wc) +{ + return !!(get_char_typeW(wc) & C1_BLANK); }
BOOL WINAPI IsCharCntrlW(WCHAR wc) { - WORD type; - - return GetStringTypeW(CT_CTYPE1, &wc, 1, &type) && (type & C1_CNTRL); + return !!iscntrlW(wc); }
BOOL WINAPI IsCharDigitW(WCHAR wc) { - WORD type; - - return GetStringTypeW(CT_CTYPE1, &wc, 1, &type) && (type & C1_DIGIT); + return !!isdigitW(wc); }
BOOL WINAPI IsCharPunctW(WCHAR wc) { - WORD type; - - return GetStringTypeW(CT_CTYPE1, &wc, 1, &type) && (type & C1_PUNCT); + return !!ispunctW(wc); }
BOOL WINAPI IsCharSpaceA(CHAR c) { - WORD type; - return GetStringTypeA(GetSystemDefaultLCID(), CT_CTYPE1, &c, 1, &type) && (type & C1_SPACE); + return !!(get_char_type(c) & C1_SPACE); }
BOOL WINAPI IsCharSpaceW(WCHAR wc) { - WORD type; - - return GetStringTypeW(CT_CTYPE1, &wc, 1, &type) && (type & C1_SPACE); + return !!isspaceW(wc); }
BOOL WINAPI IsCharXDigitW(WCHAR wc) { - WORD type; - - return GetStringTypeW(CT_CTYPE1, &wc, 1, &type) && (type & C1_XDIGIT); + return !!isxdigitW(wc); }
WCHAR * WINAPI StrChrW(const WCHAR *str, WCHAR ch)