diff --git a/ChangeLog b/ChangeLog index 3918ad5b4f..8d35baf50d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jul 21 10:25:52 2008 Nobuyoshi Nakada + + * io.c (prepare_getline_args): check if rs is a string when non-nil + lim is given. [ruby-dev:35610] + Mon Jul 21 04:55:20 2008 Tanaka Akira * dir.c (dir_initialize): use rb_convert_type instead of diff --git a/io.c b/io.c index 9fa241f6c3..52216cff43 100644 --- a/io.c +++ b/io.c @@ -1892,7 +1892,10 @@ prepare_getline_args(int argc, VALUE *argv, VALUE *rsp, long *limit, VALUE io) } else { rb_scan_args(argc, argv, "11", &rs, &lim); - if (NIL_P(lim) && !NIL_P(rs) && TYPE(rs) != T_STRING) { + if (!NIL_P(lim)) { + StringValue(rs); + } + else if (!NIL_P(rs) && TYPE(rs) != T_STRING) { VALUE tmp = rb_check_string_type(rs); if (NIL_P(tmp)) {