summaryrefslogtreecommitdiff
path: root/ext/stringio/stringio.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/stringio/stringio.c')
-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 7355afd770..011ccb73ff 100644
--- a/ext/stringio/stringio.c
+++ b/ext/stringio/stringio.c
@@ -947,7 +947,7 @@ strio_readline(argc, argv, self)
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;
}
@@ -969,6 +969,7 @@ strio_each(argc, argv, self)
VALUE line;
while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) {
+ rb_lastline_set(line);
rb_yield(line);
}
return self;
@@ -991,6 +992,7 @@ strio_readlines(argc, argv, self)
while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) {
rb_ary_push(ary, line);
}
+ rb_lastline_set(Qnil);
return ary;
}