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)
{
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)

View File

@ -184,7 +184,7 @@ static LPCWSTR format_insert( BOOL unicode_caller, int insert, LPCWSTR format,
}
else *p++ = *format++;
}
while (isdigitW(*format)) *p++ = *format++;
while (*format >= '0' && *format <= '9') *p++ = *format++;
if (*format == '.')
{
@ -196,7 +196,7 @@ static LPCWSTR format_insert( BOOL unicode_caller, int insert, LPCWSTR format,
format++;
}
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 */

View File

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