1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* io.c (open_key_args): set arg->io even if no options passed.

[ruby-dev:33072]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2008-02-20 01:09:21 +00:00
parent f1c975b87a
commit f761aacdd8
5 changed files with 20 additions and 12 deletions

View file

@ -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.

View file

@ -46,10 +46,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")
}

11
io.c
View file

@ -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));
}

View file

@ -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

View file

@ -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[];