aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--parse.y4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2273b23dbc..0ad99e0089 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Sep 9 17:17:31 2009 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * re.c (parser_regx_options): only one kcode should effect
+ options [ruby-core:25411]
+
Wed Sep 9 15:46:28 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* load.c (rb_feature_provided): fixed for autoloading extension
diff --git a/parse.y b/parse.y
index 80afdb66ef..121029d19d 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();