From 01eb117b01576e5b8386af5b6b425655f314888c Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 1 Dec 2012 10:24:12 +0000 Subject: [PATCH] io.c: recurse for the argument * io.c (rb_io_puts): recurse for the argument itself, not converted array elements. [ruby-core:42444] [Bug #5986] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ io.c | 10 +++++----- test/ruby/test_io.rb | 12 ++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index ccf768e4e5..d5d1af45f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Dec 1 19:24:09 2012 Nobuyoshi Nakada + + * io.c (rb_io_puts): recurse for the argument itself, not converted + array elements. [ruby-core:42444] [Bug #5986] + Sat Dec 1 19:01:36 2012 Nobuyoshi Nakada * marshal.c (w_object, r_object0): call private marshal methods. diff --git a/io.c b/io.c index 63bb8a00e7..7a89654ba2 100644 --- a/io.c +++ b/io.c @@ -6660,13 +6660,15 @@ io_puts_ary(VALUE ary, VALUE out, int recur) if (recur) { tmp = rb_str_new2("[...]"); rb_io_puts(1, &tmp, out); - return Qnil; + return Qtrue; } + ary = rb_check_array_type(ary); + if (NIL_P(ary)) return Qfalse; for (i=0; i