summaryrefslogtreecommitdiff
path: root/lib/re1.5/charclass.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/re1.5/charclass.c')
-rw-r--r--lib/re1.5/charclass.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/re1.5/charclass.c b/lib/re1.5/charclass.c
index 7f6388c93..2553b4053 100644
--- a/lib/re1.5/charclass.c
+++ b/lib/re1.5/charclass.c
@@ -6,7 +6,15 @@ int _re1_5_classmatch(const char *pc, const char *sp)
int is_positive = (pc[-1] == Class);
int cnt = *pc++;
while (cnt--) {
- if (*sp >= *pc && *sp <= pc[1]) return is_positive;
+ if (*pc == RE15_CLASS_NAMED_CLASS_INDICATOR) {
+ if (_re1_5_namedclassmatch(pc + 1, sp)) {
+ return is_positive;
+ }
+ } else {
+ if (*sp >= *pc && *sp <= pc[1]) {
+ return is_positive;
+ }
+ }
pc += 2;
}
return !is_positive;