|
@@ -1,67 +1,113 @@
|
|
|
-
|
|
|
- * This file is part of the Linux-8086 C library and is distributed
|
|
|
+
|
|
|
+ * Character classification and conversion
|
|
|
+ * Copyright (C) 2000 Lineo, Inc.
|
|
|
+ * Written by Erik Andersen
|
|
|
+ * This file is part of the uC-Libc C library and is distributed
|
|
|
* under the GNU Library General Public License.
|
|
|
*/
|
|
|
|
|
|
-
|
|
|
- * CTYPE.C Character classification and conversion
|
|
|
- */
|
|
|
-
|
|
|
#include <ctype.h>
|
|
|
|
|
|
-#undef toupper
|
|
|
-#undef tolower
|
|
|
+int
|
|
|
+isalnum( int c )
|
|
|
+{
|
|
|
+ return (isalpha(c) || isdigit(c));
|
|
|
+}
|
|
|
|
|
|
-unsigned char __ctype[128] = {
|
|
|
- __CT_c, __CT_c, __CT_c, __CT_c,
|
|
|
- __CT_c, __CT_c, __CT_c, __CT_c,
|
|
|
- __CT_c, __CT_c | __CT_s, __CT_c | __CT_s, __CT_c | __CT_s,
|
|
|
- __CT_c | __CT_s, __CT_c | __CT_s, __CT_c, __CT_c,
|
|
|
+int
|
|
|
+isalpha( int c )
|
|
|
+{
|
|
|
+ return (isupper(c) || islower(c));
|
|
|
+}
|
|
|
|
|
|
- __CT_c, __CT_c, __CT_c, __CT_c,
|
|
|
- __CT_c, __CT_c, __CT_c, __CT_c,
|
|
|
- __CT_c, __CT_c, __CT_c, __CT_c,
|
|
|
- __CT_c, __CT_c, __CT_c, __CT_c,
|
|
|
+int
|
|
|
+isascii( int c )
|
|
|
+{
|
|
|
+ return (c > 0 && c <= 0x7f);
|
|
|
+}
|
|
|
|
|
|
- __CT_s, __CT_p, __CT_p, __CT_p,
|
|
|
- __CT_p, __CT_p, __CT_p, __CT_p,
|
|
|
- __CT_p, __CT_p, __CT_p, __CT_p,
|
|
|
- __CT_p, __CT_p, __CT_p, __CT_p,
|
|
|
+int
|
|
|
+iscntrl( int c )
|
|
|
+{
|
|
|
+ return ((c > 0) && ((c <= 0x1f) || (c == 0x7f)));
|
|
|
+}
|
|
|
|
|
|
- __CT_d | __CT_x, __CT_d | __CT_x, __CT_d | __CT_x, __CT_d | __CT_x,
|
|
|
- __CT_d | __CT_x, __CT_d | __CT_x, __CT_d | __CT_x, __CT_d | __CT_x,
|
|
|
- __CT_d | __CT_x, __CT_d | __CT_x, __CT_p, __CT_p,
|
|
|
- __CT_p, __CT_p, __CT_p, __CT_p,
|
|
|
+int
|
|
|
+isdigit( int c )
|
|
|
+{
|
|
|
+ return (c >= '0' && c <= '9');
|
|
|
+}
|
|
|
|
|
|
- __CT_p, __CT_u | __CT_x, __CT_u | __CT_x, __CT_u | __CT_x,
|
|
|
- __CT_u | __CT_x, __CT_u | __CT_x, __CT_u | __CT_x, __CT_u,
|
|
|
- __CT_u, __CT_u, __CT_u, __CT_u,
|
|
|
- __CT_u, __CT_u, __CT_u, __CT_u,
|
|
|
+int
|
|
|
+isgraph( int c )
|
|
|
+{
|
|
|
+ return (c != ' ' && isprint(c));
|
|
|
+}
|
|
|
|
|
|
- __CT_u, __CT_u, __CT_u, __CT_u,
|
|
|
- __CT_u, __CT_u, __CT_u, __CT_u,
|
|
|
- __CT_u, __CT_u, __CT_u, __CT_p,
|
|
|
- __CT_p, __CT_p, __CT_p, __CT_p,
|
|
|
+int
|
|
|
+islower( int c )
|
|
|
+{
|
|
|
+ return (c >= 'a' && c <= 'z');
|
|
|
+}
|
|
|
|
|
|
- __CT_p, __CT_l | __CT_x, __CT_l | __CT_x, __CT_l | __CT_x,
|
|
|
- __CT_l | __CT_x, __CT_l | __CT_x, __CT_l | __CT_x, __CT_l,
|
|
|
- __CT_l, __CT_l, __CT_l, __CT_l,
|
|
|
- __CT_l, __CT_l, __CT_l, __CT_l,
|
|
|
+int
|
|
|
+isprint( int c )
|
|
|
+{
|
|
|
+ return (c >= ' ' && c <= '~');
|
|
|
+}
|
|
|
|
|
|
- __CT_l, __CT_l, __CT_l, __CT_l,
|
|
|
- __CT_l, __CT_l, __CT_l, __CT_l,
|
|
|
- __CT_l, __CT_l, __CT_l, __CT_p,
|
|
|
- __CT_p, __CT_p, __CT_p, __CT_c
|
|
|
-};
|
|
|
+int
|
|
|
+ispunct( int c )
|
|
|
+{
|
|
|
+ return ((c > ' ' && c <= '~') && !isalnum(c));
|
|
|
+}
|
|
|
|
|
|
-int toupper(c)
|
|
|
-int c;
|
|
|
+int
|
|
|
+isspace( int c )
|
|
|
{
|
|
|
- return (islower(c) ? (c ^ 0x20) : (c));
|
|
|
+ return (c == ' ' || c == '\f' || c == '\n' || c == '\r' ||
|
|
|
+ c == '\t' || c == '\v');
|
|
|
}
|
|
|
|
|
|
-int tolower(c)
|
|
|
-int c;
|
|
|
+int
|
|
|
+isupper( int c )
|
|
|
{
|
|
|
- return (isupper(c) ? (c ^ 0x20) : (c));
|
|
|
+ return (c >= 'A' && c <= 'Z');
|
|
|
}
|
|
|
+
|
|
|
+int
|
|
|
+isxdigit( int c )
|
|
|
+{
|
|
|
+ return (isxupper(c) || isxlower(c));
|
|
|
+}
|
|
|
+
|
|
|
+int
|
|
|
+isxlower( int c )
|
|
|
+{
|
|
|
+ return (isdigit(c) || (c >= 'a' && c <= 'f'));
|
|
|
+}
|
|
|
+
|
|
|
+int
|
|
|
+isxupper( int c )
|
|
|
+{
|
|
|
+ return (isdigit(c) || (c >= 'A' && c <= 'F'));
|
|
|
+}
|
|
|
+
|
|
|
+int
|
|
|
+toascii( int c )
|
|
|
+{
|
|
|
+ return (c & 0x7f);
|
|
|
+}
|
|
|
+
|
|
|
+int
|
|
|
+tolower( int c )
|
|
|
+{
|
|
|
+ return (isupper(c) ? ( c - 'A' + 'a') : (c));
|
|
|
+}
|
|
|
+
|
|
|
+int
|
|
|
+toupper( int c )
|
|
|
+{
|
|
|
+ return (islower(c) ? (c - 'a' + 'A') : (c));
|
|
|
+}
|
|
|
+
|