Bug #4024 ยป io_readlines.patch
io.c (working copy) | ||
---|---|---|
long limit;
|
||
prepare_getline_args(argc, argv, &rs, &limit, io);
|
||
if (limit == 0)
|
||
rb_raise(rb_eArgError, "invalid limit: 0 for readlines");
|
||
ary = rb_ary_new();
|
||
while (!NIL_P(line = rb_io_getline_1(rs, limit, io))) {
|
||
rb_ary_push(ary, line);
|
||
... | ... | |
RETURN_ENUMERATOR(io, argc, argv);
|
||
prepare_getline_args(argc, argv, &rs, &limit, io);
|
||
if (limit == 0)
|
||
rb_raise(rb_eArgError, "invalid limit: 0 for each_line");
|
||
while (!NIL_P(str = rb_io_getline_1(rs, limit, io))) {
|
||
rb_yield(str);
|
||
}
|
test/ruby/test_io.rb (working copy) | ||
---|---|---|
GC.start
|
||
end
|
||
end
|
||
def test_readlines_limit_0
|
||
bugxxx = "[ruby-dev:xxx]"
|
||
t = make_tempfile
|
||
assert_raise(ArgumentError, bugxxx) do
|
||
open(t.path, "r") do |io|
|
||
io.readlines(0)
|
||
end
|
||
end
|
||
end
|
||
def test_each_line_limit_0
|
||
bugxxx = "[ruby-dev:xxx]"
|
||
t = make_tempfile
|
||
assert_raise(ArgumentError, bugxxx) do
|
||
open(t.path, "r") do |io|
|
||
io.each_line(0).next
|
||
end
|
||
end
|
||
end
|
||
end
|