diff options
author | Paul Ackersviller <packersv@users.sourceforge.net> | 2007-04-15 21:47:07 +0000 |
---|---|---|
committer | Paul Ackersviller <packersv@users.sourceforge.net> | 2007-04-15 21:47:07 +0000 |
commit | 0e719c892873535ad26868ef958db24784444866 (patch) | |
tree | 3d1987899ecec92ba5e0dcde9047d3f4e9dfb1fa /Src | |
parent | 3be91bc033a00604f43d5b50714d8eb9fc621ae8 (diff) | |
download | zsh-0e719c892873535ad26868ef958db24784444866.tar.gz zsh-0e719c892873535ad26868ef958db24784444866.tar.xz zsh-0e719c892873535ad26868ef958db24784444866.zip |
Merge of workers/21211: add [[:IFS:]], etc. tests.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/pattern.c | 32 |
1 files changed, 30 insertions, 2 deletions
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)); |