about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-04-15 21:47:07 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-04-15 21:47:07 +0000
commit0e719c892873535ad26868ef958db24784444866 (patch)
tree3d1987899ecec92ba5e0dcde9047d3f4e9dfb1fa /Src
parent3be91bc033a00604f43d5b50714d8eb9fc621ae8 (diff)
downloadzsh-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.c32
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));