From a11df9a6ce282a27cdf67e93cc04151a1bfde14d Mon Sep 17 00:00:00 2001 From: naruse Date: Wed, 9 Sep 2009 08:19:06 +0000 Subject: Only 1 kcode effects options [ruby-core:25411] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ parse.y | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2273b23db..0ad99e008 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 9 17:17:31 2009 NARUSE, Yui + + * re.c (parser_regx_options): only one kcode should effect + options [ruby-core:25411] + Wed Sep 9 15:46:28 2009 Nobuyoshi Nakada * load.c (rb_feature_provided): fixed for autoloading extension diff --git a/parse.y b/parse.y index 80afdb66e..121029d19 100644 --- a/parse.y +++ b/parse.y @@ -5588,6 +5588,7 @@ static int parser_regx_options(struct parser_params *parser) { int kcode = 0; + int kopt = 0; int options = 0; int c, opt, kc; @@ -5597,13 +5598,14 @@ parser_regx_options(struct parser_params *parser) options |= RE_OPTION_ONCE; } else if (rb_char_to_option_kcode(c, &opt, &kc)) { - options |= opt; + kopt = opt; if (kc >= 0) kcode = c; } else { tokadd(c); } } + options |= kopt; pushback(c); if (toklen()) { tokfix(); -- cgit