summaryrefslogtreecommitdiff
path: root/Src/pattern.c
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2001-09-09 06:17:02 +0000
committerClint Adams <clint@users.sourceforge.net>2001-09-09 06:17:02 +0000
commita11772c6179c382b3be4cfa1c60ec723e625a5c1 (patch)
treef9611ea7bace719f3db3912457469161dbd640fa /Src/pattern.c
parent9a31296b3ef3a0101963eae3bd53e771e1150537 (diff)
downloadzsh-a11772c6179c382b3be4cfa1c60ec723e625a5c1.tar.gz
zsh-a11772c6179c382b3be4cfa1c60ec723e625a5c1.zip
15765: introduce [:ascii:] class
Diffstat (limited to 'Src/pattern.c')
-rw-r--r--Src/pattern.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/Src/pattern.c b/Src/pattern.c
index db5344230..f75698adc 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -158,18 +158,19 @@ typedef union upat *Upat;
*/
#define PP_ALPHA 1
#define PP_ALNUM 2
-#define PP_BLANK 3
-#define PP_CNTRL 4
-#define PP_DIGIT 5
-#define PP_GRAPH 6
-#define PP_LOWER 7
-#define PP_PRINT 8
-#define PP_PUNCT 9
-#define PP_SPACE 10
-#define PP_UPPER 11
-#define PP_XDIGIT 12
-#define PP_UNKWN 13
-#define PP_RANGE 14
+#define PP_ASCII 3
+#define PP_BLANK 4
+#define PP_CNTRL 5
+#define PP_DIGIT 6
+#define PP_GRAPH 7
+#define PP_LOWER 8
+#define PP_PRINT 9
+#define PP_PUNCT 10
+#define PP_SPACE 11
+#define PP_UPPER 12
+#define PP_XDIGIT 13
+#define PP_UNKWN 14
+#define PP_RANGE 15
#define P_OP(p) ((p)->l & 0xff)
#define P_NEXT(p) ((p)->l >> 8)
@@ -928,6 +929,8 @@ patcomppiece(int *flagp)
ch = PP_ALPHA;
else if (!strncmp(patparse, "alnum", len))
ch = PP_ALNUM;
+ else if (!strncmp(patparse, "ascii", len))
+ ch = PP_ASCII;
else if (!strncmp(patparse, "blank", len))
ch = PP_BLANK;
else if (!strncmp(patparse, "cntrl", len))
@@ -2187,6 +2190,10 @@ patmatchrange(char *range, int ch)
if (isalnum(ch))
return 1;
break;
+ case PP_ASCII:
+ if ((ch & ~0x7f) == 0)
+ return 1;
+ break;
case PP_BLANK:
if (ch == ' ' || ch == '\t')
return 1;