kernel32: Avoid using wctype functions.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
feature/deterministic
Alexandre Julliard 2020-04-01 10:30:17 +02:00
parent e71ffcde30
commit 2ec3396122
3 changed files with 8 additions and 5 deletions

View File

@ -362,7 +362,10 @@ static void WCEL_SaveYank(WCEL_Context* ctx, int beg, int end)
*/ */
static inline BOOL WCEL_iswalnum(WCHAR wc) static inline BOOL WCEL_iswalnum(WCHAR wc)
{ {
return get_char_typeW(wc) & (C1_ALPHA|C1_DIGIT|C1_LOWER|C1_UPPER); WORD type;
GetStringTypeW( CT_CTYPE1, &wc, 1, &type );
return type & (C1_ALPHA|C1_DIGIT|C1_LOWER|C1_UPPER);
} }
static int WCEL_GetLeftWordTransition(WCEL_Context* ctx, int ofs) static int WCEL_GetLeftWordTransition(WCEL_Context* ctx, int ofs)

View File

@ -184,7 +184,7 @@ static LPCWSTR format_insert( BOOL unicode_caller, int insert, LPCWSTR format,
} }
else *p++ = *format++; else *p++ = *format++;
} }
while (isdigitW(*format)) *p++ = *format++; while (*format >= '0' && *format <= '9') *p++ = *format++;
if (*format == '.') if (*format == '.')
{ {
@ -196,7 +196,7 @@ static LPCWSTR format_insert( BOOL unicode_caller, int insert, LPCWSTR format,
format++; format++;
} }
else else
while (isdigitW(*format)) *p++ = *format++; while (*format >= '0' && *format <= '9') *p++ = *format++;
} }
/* replicate MS bug: drop an argument when using va_list with width/precision */ /* replicate MS bug: drop an argument when using va_list with width/precision */

View File

@ -270,8 +270,8 @@ static void PROFILE_Free( PROFILESECTION *section )
/* returns TRUE if a whitespace character, else FALSE */ /* returns TRUE if a whitespace character, else FALSE */
static inline BOOL PROFILE_isspaceW(WCHAR c) static inline BOOL PROFILE_isspaceW(WCHAR c)
{ {
/* ^Z (DOS EOF) is a space too (found on CD-ROMs) */ /* ^Z (DOS EOF) is a space too (found on CD-ROMs) */
return isspaceW(c) || c == 0x1a; return (c >= 0x09 && c <= 0x0d) || c == 0x1a || c == 0x20;
} }
static inline ENCODING PROFILE_DetectTextEncoding(const void * buffer, int * len) static inline ENCODING PROFILE_DetectTextEncoding(const void * buffer, int * len)