diff options
author | Clint Adams <clint@users.sourceforge.net> | 2001-09-09 06:17:02 +0000 |
---|---|---|
committer | Clint Adams <clint@users.sourceforge.net> | 2001-09-09 06:17:02 +0000 |
commit | a11772c6179c382b3be4cfa1c60ec723e625a5c1 (patch) | |
tree | f9611ea7bace719f3db3912457469161dbd640fa /Src/pattern.c | |
parent | 9a31296b3ef3a0101963eae3bd53e771e1150537 (diff) | |
download | zsh-a11772c6179c382b3be4cfa1c60ec723e625a5c1.tar.gz zsh-a11772c6179c382b3be4cfa1c60ec723e625a5c1.tar.xz zsh-a11772c6179c382b3be4cfa1c60ec723e625a5c1.zip |
15765: introduce [:ascii:] class
Diffstat (limited to 'Src/pattern.c')
-rw-r--r-- | Src/pattern.c | 31 |
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; |