文字クラスの中で、intersection(&&)の前に
バックスラッシュを使用した文字の指定があるときに
間違った結果になることがありました。
例: /[\s&&[^\n]]/
以下がRuby 1.9へのパッチです。
Oniguruma 3.9.0で修正済みです。
--
小迫
--- regparse.c.orig 2005-10-19 02:35:18.000000000 +0900
+++ regparse.c 2005-11-20 21:39:27.793857600 +0900
@@ -2621,6 +2621,8 @@ fetch_token_in_cc(OnigToken* tok, UChar*
tok->type = TK_CHAR;
tok->base = 0;
tok->u.c = c;
+ tok->escaped = 0;
+
if (c == ']') {
tok->type = TK_CC_CLOSE;
}