ruby-changes:18551
From: yugui <ko1@a...>
Date: Sun, 16 Jan 2011 21:41:19 +0900 (JST)
Subject: [ruby-changes:18551] Ruby:r30574 (ruby_1_9_2): merges r30536 from trunk into ruby_1_9_2.
yugui 2011-01-16 21:35:27 +0900 (Sun, 16 Jan 2011) New Revision: 30574 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30574 Log: merges r30536 from trunk into ruby_1_9_2. -- * io.c (argf_next_argv): go advance when the next file cannot be read. [ruby-core:34446] Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/io.c branches/ruby_1_9_2/test/ruby/test_argf.rb branches/ruby_1_9_2/version.h Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 30573) +++ ruby_1_9_2/ChangeLog (revision 30574) @@ -1,3 +1,8 @@ +Fri Jan 14 07:30:47 2011 Nobuyoshi Nakada <nobu@r...> + + * io.c (argf_next_argv): go advance when the next file cannot be + read. [ruby-core:34446] + Wed Jan 12 23:55:48 2011 KOSAKI Motohiro <kosaki.motohiro@g...> * io.c (rb_f_syscall): Add 64bit Linux support. Some syscall takes Index: ruby_1_9_2/io.c =================================================================== --- ruby_1_9_2/io.c (revision 30573) +++ ruby_1_9_2/io.c (revision 30574) @@ -6778,7 +6778,6 @@ } if (ARGF.next_p == 1) { - ARGF.next_p = 0; retry: if (RARRAY_LEN(ARGF.argv) > 0) { ARGF.filename = rb_ary_shift(ARGF.argv); @@ -6867,6 +6866,7 @@ fptr->encs = ARGF.encs; clear_codeconv(fptr); } + ARGF.next_p = 0; } else { ARGF.next_p = 1; Index: ruby_1_9_2/version.h =================================================================== --- ruby_1_9_2/version.h (revision 30573) +++ ruby_1_9_2/version.h (revision 30574) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 154 +#define RUBY_PATCHLEVEL 155 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 Index: ruby_1_9_2/test/ruby/test_argf.rb =================================================================== --- ruby_1_9_2/test/ruby/test_argf.rb (revision 30573) +++ ruby_1_9_2/test/ruby/test_argf.rb (revision 30574) @@ -694,4 +694,20 @@ assert_equal([@t1.path, @t2.path, @t3.path].inspect, f.gets.chomp) end end + + def test_unreadable + bug4274 = '[ruby-core:34446]' + paths = (1..2).map do + t = Tempfile.new("bug4274-") + path = t.path + t.close! + path + end + argf = ARGF.class.new(*paths) + paths.each do |path| + e = assert_raise(Errno::ENOENT) {argf.gets} + assert_match(/- #{Regexp.quote(path)}\z/, e.message) + end + assert_nil(argf.gets, bug4274) + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/