summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-01-11 23:49:54 +0900
committerGitHub <[email protected]>2021-01-11 23:49:54 +0900
commit974e245ae0cb4a0c3eda14a9617090173b326e8a (patch)
treec676c5a706c2c4e2461ed5d0d0c30db0ee5161d7 /mrbgems/mruby-io
parentcdbcade041aa116a03c69bf27e38dc69d62a7b42 (diff)
parent01897f8456fca2742eccd5c8b76d59bfefd06799 (diff)
downloadmruby-974e245ae0cb4a0c3eda14a9617090173b326e8a.tar.gz
mruby-974e245ae0cb4a0c3eda14a9617090173b326e8a.zip
Merge pull request #5285 from dearblue/io-unimps
Remove functions for unimplemented methods
Diffstat (limited to 'mrbgems/mruby-io')
-rw-r--r--mrbgems/mruby-io/src/io.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c
index c597cc5ea..31ea572a4 100644
--- a/mrbgems/mruby-io/src/io.c
+++ b/mrbgems/mruby-io/src/io.c
@@ -326,6 +326,9 @@ mrb_io_alloc(mrb_state *mrb)
#define NOFILE 64
#endif
+#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
+# define mrb_io_s_popen mrb_notimplement_m
+#else
static int
option_to_fd(mrb_state *mrb, mrb_value v)
{
@@ -457,13 +460,6 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
DATA_PTR(io) = fptr;
return io;
}
-#elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-static mrb_value
-mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
-{
- mrb_raise(mrb, E_NOTIMP_ERROR, "IO#popen is not supported on the platform");
- return mrb_false_value();
-}
#else
static mrb_value
mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
@@ -589,7 +585,8 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
}
return result;
}
-#endif
+#endif /* _WIN32 */
+#endif /* TARGET_OS_IPHONE */
static int
mrb_dup(mrb_state *mrb, int fd, mrb_bool *failed)
@@ -1333,10 +1330,10 @@ mrb_io_fileno_m(mrb_state *mrb, mrb_value io)
return mrb_fixnum_value(fd);
}
+#if defined(F_GETFD) && defined(F_SETFD) && defined(FD_CLOEXEC)
static mrb_value
mrb_io_close_on_exec_p(mrb_state *mrb, mrb_value self)
{
-#if defined(F_GETFD) && defined(F_SETFD) && defined(FD_CLOEXEC)
struct mrb_io *fptr;
int ret;
@@ -1350,17 +1347,15 @@ mrb_io_close_on_exec_p(mrb_state *mrb, mrb_value self)
if ((ret = fcntl(fptr->fd, F_GETFD)) == -1) mrb_sys_fail(mrb, "F_GETFD failed");
if (!(ret & FD_CLOEXEC)) return mrb_false_value();
return mrb_true_value();
-
+}
#else
- mrb_raise(mrb, E_NOTIMP_ERROR, "IO#close_on_exec? is not supported on the platform");
- return mrb_false_value();
+# define mrb_io_close_on_exec_p mrb_notimplement_m
#endif
-}
+#if defined(F_GETFD) && defined(F_SETFD) && defined(FD_CLOEXEC)
static mrb_value
mrb_io_set_close_on_exec(mrb_state *mrb, mrb_value self)
{
-#if defined(F_GETFD) && defined(F_SETFD) && defined(FD_CLOEXEC)
struct mrb_io *fptr;
int flag, ret;
mrb_bool b;
@@ -1387,11 +1382,10 @@ mrb_io_set_close_on_exec(mrb_state *mrb, mrb_value self)
}
return mrb_bool_value(b);
+}
#else
- mrb_raise(mrb, E_NOTIMP_ERROR, "IO#close_on_exec= is not supported on the platform");
- return mrb_nil_value();
+# define mrb_io_set_close_on_exec mrb_notimplement_m
#endif
-}
static mrb_value
mrb_io_set_sync(mrb_state *mrb, mrb_value self)