Add isblank
authorJason Hobbs <jason.hobbs@calxeda.com>
Tue, 23 Aug 2011 11:06:52 +0000 (11:06 +0000)
committerWolfgang Denk <wd@denx.de>
Mon, 17 Oct 2011 20:25:34 +0000 (22:25 +0200)
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>
include/linux/ctype.h

index 6dec944..42f9305 100644 (file)
@@ -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)