Print this page
2964 need POSIX 2008 locale object support
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 666,670 **** --- 666,719 ---- write(int fd, const void *buf, size_t size) { extern ssize_t __write(int, const void *, size_t); return (__write(fd, buf, size)); } + + /* + * ASCII versions of ctype character classification functions. This avoids + * pulling in the entire locale framework that is in libc. + */ + + int + isdigit(int c) + { + return ((c >= '0' && c <= '9') ? 1 : 0); + } + + int + isupper(int c) + { + return ((c >= 'A' && c <= 'Z') ? 1 : 0); + } + + int + islower(int c) + { + return ((c >= 'a' && c <= 'z') ? 1 : 0); + } + + int + isspace(int c) + { + return (((c == ' ') || (c == '\t') || (c == '\r') || (c == '\n') || + (c == '\v') || (c == '\f')) ? 1 : 0); + } + + int + isxdigit(int c) + { + return ((isdigit(c) || (c >= 'A' && c <= 'F') || + (c >= 'a' && c <= 'f')) ? 1 : 0); + } + + int + isalpha(int c) + { + return ((isupper(c) || islower(c)) ? 1 : 0); + } + + int + isalnum(int c) + { + return ((isalpha(c) || isdigit(c)) ? 1 : 0); + }