diff options
authorJason Hobbs <jason.hobbs@calxeda.com>2011-08-23 11:06:52 +0000
committerWolfgang Denk <wd@denx.de>2011-10-17 22:25:34 +0200
commit93337abbfe2951c63a4e7b450da1848c6c69217f (patch)
parentc8a2079e49ee15dde10278865425ec9c36215f31 (diff)
Add isblank
Existing ctype checks are implemented using a 256 byte lookup table, allowing each character to be in any of 8 character classes. Since there are 8 existing character classes without the blank class, I implemented isblank without using the lookup table. Since there are only two blank characters - tab and space - this is a more reasonable approach than doubling the size of the lookup table to accommodate one more class. Signed-off-by: Jason Hobbs <jason.hobbs@calxeda.com>
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/ctype.h b/include/linux/ctype.h
index 6dec944a3..42f9305a0 100644
--- a/include/linux/ctype.h
+++ b/include/linux/ctype.h
@@ -31,6 +31,12 @@ extern const unsigned char _ctype[];
#define isupper(c) ((__ismask(c)&(_U)) != 0)
#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0)
+ * Rather than doubling the size of the _ctype lookup table to hold a 'blank'
+ * flag, just check for space or tab.
+ */
+#define isblank(c) (c == ' ' || c == '\t')
#define isascii(c) (((unsigned char)(c))<=0x7f)
#define toascii(c) (((unsigned char)(c))&0x7f)