From 227d35dac09fe050eb94c892694b7da727ae39ed Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Mon, 19 Oct 2015 14:30:28 +0000 Subject: [PATCH] With regard to ctype, digits (e.g. 0 to 9) and xdigits (the 0 to 9 portion of hexidecimal numbers) are all considered "numbers". (Note that while all digits are numbers, not all numbers are digits). Enhance localedef to automatically set the "number" characteristic when it encounters a digit or xdigit definition. This fixes malfunctionning isalnum(3) Obtained from: DragonflyBSD --- usr.bin/localedef/ctype.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.bin/localedef/ctype.c b/usr.bin/localedef/ctype.c index a28cdf25640..36f5829664f 100644 --- a/usr.bin/localedef/ctype.c +++ b/usr.bin/localedef/ctype.c @@ -117,7 +117,7 @@ add_ctype_impl(ctype_node_t *ctn) ctn->ctype |= (_ISALPHA | _ISGRAPH | _ISPRINT); break; case T_ISDIGIT: - ctn->ctype |= (_ISDIGIT | _ISGRAPH | _ISPRINT | _ISXDIGIT); + ctn->ctype |= (_ISDIGIT | _ISGRAPH | _ISPRINT | _ISXDIGIT | _E4); break; case T_ISSPACE: ctn->ctype |= _ISSPACE; @@ -135,7 +135,7 @@ add_ctype_impl(ctype_node_t *ctn) ctn->ctype |= (_ISPUNCT | _ISGRAPH | _ISPRINT); break; case T_ISXDIGIT: - ctn->ctype |= (_ISXDIGIT | _ISPRINT); + ctn->ctype |= (_ISXDIGIT | _ISPRINT | _E4); break; case T_ISBLANK: ctn->ctype |= (_ISBLANK | _ISSPACE); -- 2.45.2