diff --git a/newlib/libc/ctype/iswalnum.c b/newlib/libc/ctype/iswalnum.c index 999e8828c0..61dee823c1 100644 --- a/newlib/libc/ctype/iswalnum.c +++ b/newlib/libc/ctype/iswalnum.c @@ -70,9 +70,5 @@ No supporting OS subroutines are required. int iswalnum (wint_t c) { -#ifdef _MB_CAPABLE - return iswalnum_l (c, 0); -#else return c < (wint_t)0x100 ? isalnum (c) : 0; -#endif } diff --git a/newlib/libc/ctype/iswdigit_l.c b/newlib/libc/ctype/iswdigit_l.c index 025b5c0d68..0654d44533 100644 --- a/newlib/libc/ctype/iswdigit_l.c +++ b/newlib/libc/ctype/iswdigit_l.c @@ -3,11 +3,20 @@ Copyright (c) 2016 Corinna Vinschen Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */ #define _DEFAULT_SOURCE +#include #include +#include "local.h" +#include "categories.h" int iswdigit_l (wint_t c, struct __locale_t *locale) { (void) locale; +#ifdef _MB_CAPABLE + c = _jp2uc_l (c, locale); + enum category cat = category (c); + return cat == CAT_Nd; // Decimal_Number +#else return c >= (wint_t)'0' && c <= (wint_t)'9'; +#endif /* _MB_CAPABLE */ }