From d3438cfcadabee8093facc0919d9a8165044bcf9 Mon Sep 17 00:00:00 2001 From: bapt 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 a28cdf256402..36f5829664fd 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);