diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 21:29:10 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 21:29:10 +0000 |
commit | e7e1b3a2d69abe7a85ecd82491f271f5ddfe73f6 (patch) | |
tree | 526dd1bdba634cc98dc1be7993db23fd27be7237 /io.c | |
parent | 3efcb087a37b73f2c3095dcfbf44bfd7b43ae4d1 (diff) | |
download | ruby-e7e1b3a2d69abe7a85ecd82491f271f5ddfe73f6.tar.gz |
* io.c (argf_readpartial): argf_forward needs argc and argv.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -5384,9 +5384,16 @@ argf_read(int argc, VALUE *argv) return str; } +struct argf_call_arg { + int argc; + VALUE *argv; +}; + static VALUE -argf_readpartial_rescue(VALUE dummy) +argf_forward_call(VALUE arg) { + struct argf_call_arg *p = (struct argf_call_arg *)arg; + argf_forward(p->argc, p->argv); return Qnil; } @@ -5406,9 +5413,11 @@ argf_readpartial(int argc, VALUE *argv) rb_eof_error(); } if (current_file == rb_stdin && TYPE(current_file) != T_FILE) { - tmp = rb_rescue2(argf_forward, (VALUE)argv, - argf_readpartial_rescue, (VALUE)Qnil, - rb_eEOFError, (VALUE)0); + struct argf_call_arg arg; + arg.argc = argc; + arg.argv = argv; + tmp = rb_rescue2(argf_forward_call, (VALUE)&arg, + RUBY_METHOD_FUNC(0), Qnil, rb_eEOFError, (VALUE)0); } else { tmp = io_getpartial(argc, argv, current_file, 0); |