From 0e719c892873535ad26868ef958db24784444866 Mon Sep 17 00:00:00 2001 From: Paul Ackersviller Date: Sun, 15 Apr 2007 21:47:07 +0000 Subject: Merge of workers/21211: add [[:IFS:]], etc. tests. --- Src/pattern.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'Src') diff --git a/Src/pattern.c b/Src/pattern.c index ed88bb7ce..393d9bf41 100644 --- a/Src/pattern.c +++ b/Src/pattern.c @@ -193,8 +193,12 @@ typedef union upat *Upat; #define PP_SPACE 11 #define PP_UPPER 12 #define PP_XDIGIT 13 -#define PP_UNKWN 14 -#define PP_RANGE 15 +#define PP_IDENT 14 +#define PP_IFS 15 +#define PP_IFSSPACE 16 +#define PP_WORD 17 +#define PP_UNKWN 18 +#define PP_RANGE 19 #define P_OP(p) ((p)->l & 0xff) #define P_NEXT(p) ((p)->l >> 8) @@ -1118,6 +1122,14 @@ patcomppiece(int *flagp) ch = PP_UPPER; else if (!strncmp(patparse, "xdigit", len)) ch = PP_XDIGIT; + else if (!strncmp(patparse, "IDENT", len)) + ch = PP_IDENT; + else if (!strncmp(patparse, "IFS", len)) + ch = PP_IFS; + else if (!strncmp(patparse, "IFSSPACE", len)) + ch = PP_IFSSPACE; + else if (!strncmp(patparse, "WORD", len)) + ch = PP_WORD; else ch = PP_UNKWN; patparse = nptr + 2; @@ -2724,6 +2736,22 @@ patmatchrange(char *range, int ch) if (isxdigit(ch)) return 1; break; + case PP_IDENT: + if (iident(ch)) + return 1; + break; + case PP_IFS: + if (isep(ch)) + return 1; + break; + case PP_IFSSPACE: + if (iwsep(ch)) + return 1; + break; + case PP_WORD: + if (iword(ch)) + return 1; + break; case PP_RANGE: range++; r1 = STOUC(UNMETA(range)); -- cgit 1.4.1