aboutsummaryrefslogtreecommitdiffstats
path: root/process.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-16 21:38:25 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-16 21:38:25 +0900
commitd45d448d71bfe9db4a71e06289e7b4d640bbd55c (patch)
tree8172f5c055e7438dadef5bb0c5f14760a20c37de /process.c
parentd8e23a67c3869c70ef82b4337499367632ce911a (diff)
downloadruby-d45d448d71bfe9db4a71e06289e7b4d640bbd55c.tar.gz
nil as the default of optional parameters
Diffstat (limited to 'process.c')
-rw-r--r--process.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/process.c b/process.c
index 9fb40aaacb..f1cd802f95 100644
--- a/process.c
+++ b/process.c
@@ -1992,6 +1992,7 @@ rb_execarg_addopt_rlimit(struct rb_execarg *eargp, int rtype, VALUE val)
}
#endif
+#define TO_BOOL(val, name) NIL_P(val) ? 0 : rb_bool_expected((val), name)
int
rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val)
{
@@ -2039,7 +2040,7 @@ rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val)
rb_raise(rb_eArgError, "new_pgroup option specified twice");
}
eargp->new_pgroup_given = 1;
- eargp->new_pgroup_flag = rb_bool_expected(val, "new_pgroup");
+ eargp->new_pgroup_flag = TO_BOOL(val, "new_pgroup");
}
else
#endif
@@ -2048,7 +2049,7 @@ rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val)
rb_raise(rb_eArgError, "unsetenv_others option specified twice");
}
eargp->unsetenv_others_given = 1;
- eargp->unsetenv_others_do = rb_bool_expected(val, "unsetenv_others");
+ eargp->unsetenv_others_do = TO_BOOL(val, "unsetenv_others");
}
else if (id == id_chdir) {
if (eargp->chdir_given) {
@@ -2072,7 +2073,7 @@ rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val)
rb_raise(rb_eArgError, "close_others option specified twice");
}
eargp->close_others_given = 1;
- eargp->close_others_do = rb_bool_expected(val, "close_others");
+ eargp->close_others_do = TO_BOOL(val, "close_others");
}
else if (id == id_in) {
key = INT2FIX(0);
@@ -2121,7 +2122,7 @@ rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val)
rb_raise(rb_eArgError, "exception option specified twice");
}
eargp->exception_given = 1;
- eargp->exception = rb_bool_expected(val, "exception");
+ eargp->exception = TO_BOOL(val, "exception");
}
else {
return ST_STOP;
@@ -6483,11 +6484,8 @@ proc_daemon(int argc, VALUE *argv)
int n, nochdir = FALSE, noclose = FALSE;
switch (rb_check_arity(argc, 0, 2)) {
- case 2:
- if (!NIL_P(argv[1])) noclose = rb_bool_expected(argv[1], "noclose");
- /* fallthrough */
- case 1:
- if (!NIL_P(argv[0])) nochdir = rb_bool_expected(argv[0], "nochdir");
+ case 2: noclose = TO_BOOL(argv[1], "noclose");
+ case 1: nochdir = TO_BOOL(argv[0], "nochdir");
}
prefork();