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
This commit is contained in:
Baptiste Daroussin 2015-10-19 14:30:28 +00:00
parent 031c294c1d
commit 227d35dac0

View File

@ -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);