summaryrefslogtreecommitdiffstats
path: root/ext/stringio
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-15 22:14:51 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-15 22:14:51 +0000
commitf83a409947b413231b4a5d7d7b457d67631cc32d (patch)
treecfda3c4aacb7dd02fcbae42b0d88ead0fd7ad6c9 /ext/stringio
parentffa3b760d1bc2871303fea95b876fda33c138b61 (diff)
downloadruby-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
Diffstat (limited to 'ext/stringio')
-rw-r--r--ext/stringio/stringio.c4
1 files changed, 3 insertions, 1 deletions
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;
}