diff options
Diffstat (limited to 'src/user/lib/ctype.c')
-rw-r--r-- | src/user/lib/ctype.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/user/lib/ctype.c b/src/user/lib/ctype.c index 7d3a707..fa49a07 100644 --- a/src/user/lib/ctype.c +++ b/src/user/lib/ctype.c @@ -1,21 +1,40 @@ #include <ctype.h> +int isalnum(int c) { + return isalpha(c) || isdigit(c); +} + int isalpha(int c) { return islower(c) || isupper(c); } -int isalnum(int c) { - return isalpha(c) || isdigit(c); +int iscntrl(int c) { + return c <= 0x1f || c == 0x7f; } int isdigit(int c) { return '0' <= c && c <= '9'; } +int isgraph(int c) { + return isalpha(c) || isdigit(c) || ispunct(c); +} + int islower(int c) { return 'a' <= c && c <= 'z'; } +int isprint(int c) { + return isgraph(c) || c == ' '; +} + +int ispunct(int c) { + return ('!' <= c && c <= '/') + || (':' <= c && c <= '@') + || ('[' <= c && c <= '`') + || ('{' <= c && c <= '~'); +} + int isspace(int c) { return c == ' ' || c == '\f' @@ -29,6 +48,12 @@ int isupper(int c) { return 'A' <= c && c <= 'Z'; } +int isxdigit(int c) { + return ('0' <= c && c <= '9') + || ('A' <= c && c <= 'F') + || ('a' <= c && c <= 'f'); +} + int tolower(int c) { if (isupper(c)) return c - 'A' + 'a'; return c; |