From 3e7e1b965b06f3c843972d7e2f6e3d040374d67f Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 18 Feb 2020 14:34:26 +0900 Subject: Pass keyword arguments to IOs properly [Bug #16639] (cherry picked from commit 041c2932e336b509b0ddc1fdbd9f160bce8d4893) --- io.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'io.c') diff --git a/io.c b/io.c index 42528c0fd5..868756ffc5 100644 --- a/io.c +++ b/io.c @@ -12399,10 +12399,14 @@ argf_block_call_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, argf)) return Qnil; } +#define ARGF_block_call(mid, argc, argv, func, argf) \ + rb_block_call_kw(ARGF.current_file, mid, argc, argv, \ + func, argf, rb_keyword_given_p()) + static void argf_block_call(ID mid, int argc, VALUE *argv, VALUE argf) { - VALUE ret = rb_block_call(ARGF.current_file, mid, argc, argv, argf_block_call_i, argf); + VALUE ret = ARGF_block_call(mid, argc, argv, argf_block_call_i, argf); if (ret != Qundef) ARGF.next_p = 1; } @@ -12418,7 +12422,7 @@ argf_block_call_line_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, argf)) static void argf_block_call_line(ID mid, int argc, VALUE *argv, VALUE argf) { - VALUE ret = rb_block_call(ARGF.current_file, mid, argc, argv, argf_block_call_line_i, argf); + VALUE ret = ARGF_block_call(mid, argc, argv, argf_block_call_line_i, argf); if (ret != Qundef) ARGF.next_p = 1; } -- cgit v1.2.3