diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-15 22:14:51 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-15 22:14:51 +0000 |
| commit | f83a409947b413231b4a5d7d7b457d67631cc32d (patch) | |
| tree | cfda3c4aacb7dd02fcbae42b0d88ead0fd7ad6c9 | |
| parent | ffa3b760d1bc2871303fea95b876fda33c138b61 (diff) | |
| download | ruby-f83a409947b413231b4a5d7d7b457d67631cc32d.tar.gz ruby-f83a409947b413231b4a5d7d7b457d67631cc32d.tar.xz ruby-f83a409947b413231b4a5d7d7b457d67631cc32d.zip | |
* ext/stringio/stringio.c (strio_readline, strio_each)
(strio_readlines): set lastline. [ruby-core:17257]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/stringio/stringio.c | 4 |
2 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Mon Jun 16 07:14:48 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ext/stringio/stringio.c (strio_readline, strio_each) + (strio_readlines): set lastline. [ruby-core:17257] + Mon Jun 16 01:49:39 2008 Koichi Sasada <ko1@atdot.net> * 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 8b5abb3f6..d140ced7e 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; } |
