From 5e7203ea220c44dea58eb96fe88517f0fb015ce5 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 20 Oct 2008 22:45:17 +0000 Subject: [PATCH] * regparse.c (parse_char_class): CCV_SB is only for single byte. [ruby-dev:36786] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ regparse.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/ChangeLog b/ChangeLog index d7262f988e..d2b30dc0fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Oct 21 07:45:15 2008 Nobuyoshi Nakada + + * regparse.c (parse_char_class): CCV_SB is only for single + byte. [ruby-dev:36786] + Tue Oct 21 01:49:55 2008 Yukihiro Matsumoto * 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: