#define CXQUOTE 0x0400 /* cquote + backslash */
#define CSPECVAR 0x0800 /* single-character shell variable name */
#define CSUBSTOP 0x1000 /* values of OP for ${word[:]OPstuff} */
+#define CBLANK 0x2000 /* whitespace (blank) character */
/* Defines for use by the rest of the shell. */
-extern const int sh_syntaxtab[];
+extern int sh_syntaxtab[];
+extern int sh_syntabsiz;
#define shellmeta(c) (sh_syntaxtab[(unsigned char)(c)] & CSHMETA)
#define shellbreak(c) (sh_syntaxtab[(unsigned char)(c)] & CSHBRK)
#define shellquote(c) (sh_syntaxtab[(unsigned char)(c)] & CQUOTE)
+#define shellxquote(c) (sh_syntaxtab[(unsigned char)(c)] & CXQUOTE)
+
+#define shellblank(c) (sh_syntaxtab[(unsigned char)(c)] & CBLANK)
#define issyntype(c, t) ((sh_syntaxtab[(unsigned char)(c)] & (t)) != 0)
#define notsyntype(c,t) ((sh_syntaxtab[(unsigned char)(c)] & (t)) == 0)
#define CTLESC '\001'
#define CTLNUL '\177'
+#if !defined (HAVE_ISBLANK) && !defined (isblank)
+# define isblank(x) ((x) == ' ' || (x) == '\t')
+#endif
+
#endif /* _SYNTAX_H_ */