From f76e03f3e36c2c41d2a86a9fc7f6159f25a17c58 Mon Sep 17 00:00:00 2001 From: K.Takata Date: Fri, 30 Dec 2011 22:06:05 +0900 Subject: [PATCH 1/2] add ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE option Conflicts: regparse.c --- oniguruma.h | 1 + regparse.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/oniguruma.h b/oniguruma.h index 4f8b718..ffc0c7c 100644 --- a/oniguruma.h +++ b/oniguruma.h @@ -497,6 +497,7 @@ ONIG_EXTERN const OnigSyntaxType* OnigDefaultSyntax; #define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10) /* (?)(?)(?&x) */ /* syntax (behavior) in char class [...] */ +#define ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE (1U<<19) /* (?a) doesn't affect POSIX brackets */ #define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ #define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */ #define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) diff --git a/regparse.c b/regparse.c index f58054a..3cb6bd4 100644 --- a/regparse.c +++ b/regparse.c @@ -63,7 +63,8 @@ const OnigSyntaxType OnigSyntaxRuby = { ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY | ONIG_SYN_WARN_CC_OP_NOT_ESCAPED | ONIG_SYN_WARN_CC_DUP | - ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT ) + ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT | + ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE ) , ONIG_OPTION_ASCII_RANGE , { @@ -4261,7 +4262,9 @@ parse_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ScanEnv* env) if (onigenc_with_ascii_strncmp(enc, p, end, (UChar* )":]", 2) != 0) return ONIGERR_INVALID_POSIX_BRACKET_TYPE; - r = add_ctype_to_cc(cc, pb->ctype, not, 0, env); + r = add_ctype_to_cc(cc, pb->ctype, not, + IS_SYNTAX_BV(env->syntax, ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE), + env); if (r != 0) return r; PINC; PINC; -- 1.7.5.1