diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | regparse.c | 2 |
2 files changed, 7 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Tue Oct 21 07:45:15 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * regparse.c (parse_char_class): CCV_SB is only for single + byte. [ruby-dev:36786] + Tue Oct 21 01:49:55 2008 Yukihiro Matsumoto <matz@ruby-lang.org> * io.c (rb_io_extract_modeenc): plain rb/wb should set ASCII-8BIT diff --git a/regparse.c b/regparse.c index 0bd898b771..9ec441dab8 100644 --- a/regparse.c +++ b/regparse.c @@ -4218,6 +4218,7 @@ parse_char_class(Node** np, OnigToken* tok, UChar** src, UChar* end, fetched = 0; switch (r) { case TK_CHAR: + if (tok->u.code >= SINGLE_BYTE_SIZE) goto code_point; len = ONIGENC_CODE_TO_MBCLEN(env->enc, tok->u.c); if (len > 1) { in_type = CCV_CODE_POINT; @@ -4291,6 +4292,7 @@ parse_char_class(Node** np, OnigToken* tok, UChar** src, UChar* end, break; case TK_CODE_POINT: + code_point: v = tok->u.code; in_israw = 1; val_entry: |