+#define isglob(c) cmap(c, _GLOB)
+#define isspc(c) cmap(c, _SP)
+#define ismeta(c) cmap(c, _META)
+#define iscmdmeta(c) cmap(c, _CMD)
+#define letter(c) (((c) & QUOTE) ? 0 : \
+ (isalpha((unsigned char) (c)) || (c) == '_'))
+#define alnum(c) (((c) & QUOTE) ? 0 : \
+ (isalnum((unsigned char) (c)) || (c) == '_'))
+#ifdef NLS
+#define Isspace(c) (((c) & QUOTE) ? 0 : isspace((unsigned char) (c)))
+#define Isdigit(c) (((c) & QUOTE) ? 0 : isdigit((unsigned char) (c)))
+#define Isalpha(c) (((c) & QUOTE) ? 0 : isalpha((unsigned char) (c)))
+#define Islower(c) (((c) & QUOTE) ? 0 : islower((unsigned char) (c)))
+#define Isupper(c) (((c) & QUOTE) ? 0 : isupper((unsigned char) (c)))
+#define Tolower(c) (((c) & QUOTE) ? 0 : tolower((unsigned char) (c)))
+#define Toupper(c) (((c) & QUOTE) ? 0 : toupper((unsigned char) (c)))
+#define Isxdigit(c) (((c) & QUOTE) ? 0 : isxdigit((unsigned char) (c)))
+#define Isalnum(c) (((c) & QUOTE) ? 0 : isalnum((unsigned char) (c)))
+#define Iscntrl(c) (((c) & QUOTE) ? 0 : iscntrl((unsigned char) (c)))
+#define Isprint(c) (((c) & QUOTE) ? 0 : isprint((unsigned char) (c)))
+#else
+#define Isspace(c) cmap(c, _SP|_NL)
+#define Isdigit(c) cmap(c, _DIG)
+#define Isalpha(c) (cmap(c,_LET) && !(((c) & META) && AsciiOnly))
+#define Islower(c) (cmap(c,_LOW) && !(((c) & META) && AsciiOnly))
+#define Isupper(c) (cmap(c, _UP) && !(((c) & META) && AsciiOnly))
+#define Tolower(c) (_cmap_lower[(unsigned char)(c)])
+#define Toupper(c) (_cmap_upper[(unsigned char)(c)])
+#define Isxdigit(c) cmap(c, _XD)
+#define Isalnum(c) (cmap(c, _DIG|_LET) && !(((c) & META) && AsciiOnly))
+#define Iscntrl(c) (cmap(c,_CTR) && !(((c) & META) && AsciiOnly))
+#define Isprint(c) (!cmap(c,_CTR) && !(((c) & META) && AsciiOnly))
+#endif