summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--re.c2
-rw-r--r--test/ruby/test_regexp.rb3
3 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a230cd7b1..0d431b2dda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -27,6 +27,14 @@ Fri Oct 17 22:04:38 2008 wanabe <s.wanabe@gmail.com>
* array.c: recycle shared-array when it isn't referenced.
+Fri Oct 17 20:29:26 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * re.c (rb_reg_initialize_m): specify ARG_ENCODING_NONE instead of
+ ARG_ENCODING_FIXED for Regexp.new("", nil, "n"). [ruby-dev:36761]
+
+ * test/ruby/test_regexp.rb (TestRegexp#test_initialize): test
+ updated.
+
Fri Oct 17 19:46:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* tool/ifchange, win32/ifchange.bat: --timestamp option added.
diff --git a/re.c b/re.c
index 48a12ee3bc..bd598ddf66 100644
--- a/re.c
+++ b/re.c
@@ -2795,7 +2795,7 @@ rb_reg_initialize_m(int argc, VALUE *argv, VALUE self)
char *kcode = StringValuePtr(argv[2]);
if (kcode[0] == 'n' || kcode[1] == 'N') {
enc = rb_ascii8bit_encoding();
- flags |= ARG_ENCODING_FIXED;
+ flags |= ARG_ENCODING_NONE;
}
else {
rb_warn("encoding option is ignored - %s", kcode);
diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb
index ad222c5483..fdfef04b4d 100644
--- a/test/ruby/test_regexp.rb
+++ b/test/ruby/test_regexp.rb
@@ -272,8 +272,9 @@ class TestRegexp < Test::Unit::TestCase
Thread.new { $SAFE = 4; re.instance_eval { initialize(re) } }.join
end
- assert_equal(Encoding.find("ASCII-8BIT"), Regexp.new("b..", nil, "n").encoding)
+ assert_equal(Encoding.find("US-ASCII"), Regexp.new("b..", nil, "n").encoding)
assert_equal("bar", "foobarbaz"[Regexp.new("b..", nil, "n")])
+ assert_equal(//n, Regexp.new("", nil, "n"))
assert_raise(RegexpError) { Regexp.new(")(") }
end