From 959383cb10a0e0bda3352fd426aa1c91b2ebafc4 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 15 Jun 2008 22:14:51 +0000 Subject: * ext/stringio/stringio.c (strio_readline, strio_each) (strio_readlines): set lastline. [ruby-core:17257] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/stringio/stringio.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 122f3758b8..a527e7bf2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jun 16 07:14:48 2008 Nobuyoshi Nakada + + * ext/stringio/stringio.c (strio_readline, strio_each) + (strio_readlines): set lastline. [ruby-core:17257] + Mon Jun 16 01:49:39 2008 Koichi Sasada * eval.c (rb_f_block_given_p): fix to skip class frame. diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index 8b5abb3f62..d140ced7e7 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -928,7 +928,7 @@ strio_gets(int argc, VALUE *argv, VALUE self) static VALUE strio_readline(int argc, VALUE *argv, VALUE self) { - VALUE line = strio_getline(argc, argv, readable(StringIO(self))); + VALUE line = strio_gets(argc, argv, self); if (NIL_P(line)) rb_eof_error(); return line; } @@ -953,6 +953,7 @@ strio_each(int argc, VALUE *argv, VALUE self) RETURN_ENUMERATOR(self, argc, argv); while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) { + rb_lastline_set(line); rb_yield(line); } return self; @@ -974,6 +975,7 @@ strio_readlines(int argc, VALUE *argv, VALUE self) while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) { rb_ary_push(ary, line); } + rb_lastline_set(Qnil); return ary; } -- cgit v1.2.3