diff options
Diffstat (limited to 'posix/regex.c')
-rw-r--r-- | posix/regex.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/posix/regex.c b/posix/regex.c index 8c259d972a..0778bb85df 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -2171,14 +2171,14 @@ regex_compile (pattern, size, syntax, bufp) for (;;) { PATFETCH (c); - if (c == ':' || c == ']' || !isalpha (c) || p == pend + if ((c == ':' && *p == ']') || p == pend || c1 == CHAR_CLASS_MAX_LENGTH) break; str[c1++] = c; } str[c1] = '\0'; - /* If isn't a word bracketed by `[:' and:`]': + /* If isn't a word bracketed by `[:' and `:]': undo the ending character, the letters, and leave the leading `:' and `[' (but set bits for them). */ if (c == ':' && *p == ']') |