summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--bootstraptest/test_knownbug.rb4
-rw-r--r--io.c11
-rw-r--r--test/ruby/test_io.rb6
-rw-r--r--version.h6
5 files changed, 20 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 886a84fbc1..8124f3bad9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Feb 20 10:04:22 2008 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * io.c (open_key_args): set arg->io even if no options passed.
+ [ruby-dev:33072]
+
Tue Feb 19 21:11:49 2008 NARUSE, Yui <naruse@ruby-lang.org>
* string.c (rb_enc_strlen_cr): get length with coderange scan.
diff --git a/bootstraptest/test_knownbug.rb b/bootstraptest/test_knownbug.rb
index 62c0de57fe..7a697c76b8 100644
--- a/bootstraptest/test_knownbug.rb
+++ b/bootstraptest/test_knownbug.rb
@@ -47,10 +47,6 @@ assert_equal 'ok', %q{
assert_valid_syntax('1.times {|i|print (42),1;}', '[ruby-list:44479]')
assert_normal_exit %q{
- File.read("empty", nil, nil, {})
-}, '[ruby-dev:33072]'
-
-assert_normal_exit %q{
"abc".gsub(/./, "a" => "z")
}
diff --git a/io.c b/io.c
index d8e518fa87..1b98b6ae0d 100644
--- a/io.c
+++ b/io.c
@@ -5851,7 +5851,7 @@ open_key_args(int argc, VALUE *argv, struct foreach_arg *arg)
rb_ary_push(args, argv[0]);
rb_ary_concat(args, v);
MEMCPY(RARRAY_PTR(args)+1, RARRAY_PTR(v), VALUE, RARRAY_LEN(v));
-
+
arg->io = rb_f_open(RARRAY_LEN(args), RARRAY_PTR(args));
return;
}
@@ -5863,13 +5863,14 @@ open_key_args(int argc, VALUE *argv, struct foreach_arg *arg)
args[1] = v;
arg->io = rb_f_open(2, args);
}
+
+ if (!arg->io) {
+ arg->io = rb_io_open(RSTRING_PTR(argv[0]), "r");
+ }
+
v = rb_hash_aref(opt, encoding);
if (!NIL_P(v)) {
rb_io_t *fptr;
-
- if (!arg->io) {
- arg->io = rb_io_open(RSTRING_PTR(argv[0]), "r");
- }
GetOpenFile(arg->io, fptr);
mode_enc(fptr, StringValueCStr(v));
}
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb
index 3381cda8db..ae26609a21 100644
--- a/test/ruby/test_io.rb
+++ b/test/ruby/test_io.rb
@@ -55,4 +55,10 @@ class TestIO < Test::Unit::TestCase
ensure
r.close
end
+
+ def test_rubydev33072
+ assert_raise(Errno::ENOENT, "[ruby-dev:33072]") do
+ File.read("empty", nil, nil, {})
+ end
+ end
end
diff --git a/version.h b/version.h
index 1958ef04b5..f1613d5e85 100644
--- a/version.h
+++ b/version.h
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2008-02-19"
+#define RUBY_RELEASE_DATE "2008-02-20"
#define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20080219
+#define RUBY_RELEASE_CODE 20080220
#define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2008
#define RUBY_RELEASE_MONTH 2
-#define RUBY_RELEASE_DAY 19
+#define RUBY_RELEASE_DAY 20
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];