[hackers] [scc] [libc] Implement ctype function-style || Quentin Rameau

From: <git_AT_suckless.org>
Date: Fri, 17 Feb 2017 23:06:58 +0100 (CET)

commit 88da94f56db2db1c405c2f80a4fed7e961b54f78
Author: Quentin Rameau <quinq_AT_fifth.space>
AuthorDate: Fri Feb 17 17:50:25 2017 +0100
Commit: Quentin Rameau <quinq_AT_fifth.space>
CommitDate: Fri Feb 17 23:05:54 2017 +0100

    [libc] Implement ctype function-style

diff --git a/libc/src/ctype.c b/libc/src/ctype.c
index 2ee3e94..c348384 100644
--- a/libc/src/ctype.c
+++ b/libc/src/ctype.c
_AT_@ -1,6 +1,7 @@
-
 #include <ctype.h>
 
+#ifdef __USE_MACROS
+
 unsigned char _ctype[255] = {
         _C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */
         _C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C, /* 8-15 */
_AT_@ -19,3 +20,93 @@ unsigned char _ctype[255] = {
         _L,_L,_L,_L,_L,_L,_L,_L, /* 112-119 */
         _L,_L,_L,_P,_P,_P,_P,_C, /* 120-127 */
 };
+
+#else
+
+int
+isblank(int c)
+{
+ return (c == ' ') || (c == '\t');
+}
+
+int
+iscntrl(int c)
+{
+ return (unsigned)c < ' ' || c == 0x7f;
+}
+
+int
+isdigit(int c)
+{
+ return (unsigned)c - '0' < 10;
+}
+
+int
+islower(int c)
+{
+ return (unsigned)c - 'a' < 26;
+}
+
+int
+isupper(int c)
+{
+ return (unsigned)c - 'A' < 26;
+}
+
+int
+isprint(int c)
+{
+ return (unsigned)c - ' ' < 95;
+}
+
+int
+isspace(int c)
+{
+ return (c == ' ') || ((unsigned)c - '\t' < 5);
+}
+
+int
+isxdigit(int c)
+{
+ return isdigit(c) ||
+ ((unsigned)c - 'a' < 6) ||
+ ((unsigned)c - 'A' < 6);
+}
+
+int
+isgraph(int c)
+{
+ return isprint(c) && c != ' ';
+}
+
+int
+isalpha(int c)
+{
+ return islower(c) || isupper(c);
+}
+
+int
+isalnum(int c)
+{
+ return isalpha(c) || isdigit(c);
+}
+
+int
+ispunct(int c)
+{
+ return isprint(c) && !isspace(c) && !isalnum(c);
+}
+
+int
+tolower(int c)
+{
+ return (isupper(c) ? (unsigned)c + ' ' : c);
+}
+
+int
+toupper(int c)
+{
+ return (islower(c) ? (unsigned)c - ' ' : c);
+}
+
+#endif // __USE_MACROS
Received on Fri Feb 17 2017 - 23:06:58 CET

This archive was generated by hypermail 2.3.0 : Fri Feb 17 2017 - 23:12:46 CET