summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--io.c7
2 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 0a7e37708..097b928e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Jun 15 18:48:41 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * io.c (argf_each_line): should return self. [ruby-core:23852]
+
+ * io.c (argf_each_byte, argf_each_char): ditto.
+
Mon Jun 15 17:48:42 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* gc.c (os_obj_of): invoke garbage collection before iteration, to
diff --git a/io.c b/io.c
index 92dc006e3..99872dee1 100644
--- a/io.c
+++ b/io.c
@@ -8406,11 +8406,10 @@ argf_each_line(int argc, VALUE *argv, VALUE argf)
{
RETURN_ENUMERATOR(argf, argc, argv);
for (;;) {
- if (!next_argv()) return Qnil;
+ if (!next_argv()) return argf;
rb_block_call(ARGF.current_file, rb_intern("each_line"), argc, argv, rb_yield, 0);
ARGF.next_p = 1;
}
- return argf;
}
static VALUE
@@ -8418,7 +8417,7 @@ argf_each_byte(VALUE argf)
{
RETURN_ENUMERATOR(argf, 0, 0);
for (;;) {
- if (!next_argv()) return Qnil;
+ if (!next_argv()) return argf;
rb_block_call(ARGF.current_file, rb_intern("each_byte"), 0, 0, rb_yield, 0);
ARGF.next_p = 1;
}
@@ -8429,7 +8428,7 @@ argf_each_char(VALUE argf)
{
RETURN_ENUMERATOR(argf, 0, 0);
for (;;) {
- if (!next_argv()) return Qnil;
+ if (!next_argv()) return argf;
rb_block_call(ARGF.current_file, rb_intern("each_char"), 0, 0, rb_yield, 0);
ARGF.next_p = 1;
}