summaryrefslogtreecommitdiff
path: root/ext/io
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-15 00:02:43 (GMT)
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-15 00:02:43 (GMT)
commitcc91082af8279f878d03f722419b5862b2c5c95e (patch)
tree4299881490d4cc1b6c769c8a7bdf8761e24f7e7a /ext/io
parentc88d0666d4511ec56645b250d37c04204b30c008 (diff)
io/console: use rb_funcallv
* ext/io/console/console.c: use rb_funcallv instead of rb_funcall2, and define rb_funcallv if unavailable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/io')
-rw-r--r--ext/io/console/console.c7
-rw-r--r--ext/io/console/extconf.rb1
2 files changed, 6 insertions, 2 deletions
diff --git a/ext/io/console/console.c b/ext/io/console/console.c
index 7c5a963..ea5ff12 100644
--- a/ext/io/console/console.c
+++ b/ext/io/console/console.c
@@ -17,6 +17,9 @@
#ifndef RARRAY_CONST_PTR
# define RARRAY_CONST_PTR(ary) RARRAY_PTR(ary)
#endif
+#ifndef HAVE_RB_FUNCALLV
+# define rb_funcallv rb_funcall2
+#endif
#if defined HAVE_TERMIOS_H
# include <termios.h>
@@ -381,7 +384,7 @@ console_set_cooked(VALUE io)
static VALUE
getc_call(VALUE io)
{
- return rb_funcall2(io, id_getc, 0, 0);
+ return rb_funcallv(io, id_getc, 0, 0);
}
/*
@@ -846,7 +849,7 @@ console_dev(int argc, VALUE *argv, VALUE klass)
static VALUE
io_getch(int argc, VALUE *argv, VALUE io)
{
- return rb_funcall2(io, id_getc, argc, argv);
+ return rb_funcallv(io, id_getc, argc, argv);
}
#if ENABLE_IO_GETPASS
diff --git a/ext/io/console/extconf.rb b/ext/io/console/extconf.rb
index 381520a..454a3a7 100644
--- a/ext/io/console/extconf.rb
+++ b/ext/io/console/extconf.rb
@@ -17,6 +17,7 @@ else
end
if ok
have_header("sys/ioctl.h") if hdr
+ have_func("rb_funcallv")
# rb_check_hash_type: 1.9.3
# rb_io_get_write_io: 1.9.1
# rb_cloexec_open: 2.0.0