Commit 97899a69 authored by Tomoyuki Sahara's avatar Tomoyuki Sahara

style

parent adb3bd66
...@@ -188,7 +188,7 @@ io_open(mrb_state *mrb, mrb_value path, int flags, int perm) ...@@ -188,7 +188,7 @@ io_open(mrb_state *mrb, mrb_value path, int flags, int perm)
mrb_value mrb_value
mrb_io_s_popen(mrb_state *mrb, mrb_value klass) mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
{ {
mrb_value cmd, io; mrb_value cmd, io, result;
mrb_value mode = mrb_str_new_cstr(mrb, "r"); mrb_value mode = mrb_str_new_cstr(mrb, "r");
mrb_value opt = mrb_hash_new(mrb); mrb_value opt = mrb_hash_new(mrb);
...@@ -224,6 +224,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) ...@@ -224,6 +224,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
fflush(stderr); fflush(stderr);
} }
result = mrb_nil_value();
switch (pid = fork()) { switch (pid = fork()) {
case 0: /* child */ case 0: /* child */
if (flags & FMODE_READABLE) { if (flags & FMODE_READABLE) {
...@@ -240,7 +241,6 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) ...@@ -240,7 +241,6 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
close(pw[0]); close(pw[0]);
} }
} }
if (doexec) { if (doexec) {
for (fd = 3; fd < NOFILE; fd++) { for (fd = 3; fd < NOFILE; fd++) {
close(fd); close(fd);
...@@ -249,12 +249,10 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) ...@@ -249,12 +249,10 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
mrb_raisef(mrb, E_IO_ERROR, "command not found: %s", pname); mrb_raisef(mrb, E_IO_ERROR, "command not found: %s", pname);
_exit(127); _exit(127);
} }
return mrb_nil_value(); result = mrb_nil_value();
break;
default: /* parent */ default: /* parent */
if (pid < 0) {
mrb_sys_fail(mrb, "pipe_open failed.");
return mrb_nil_value();
} else {
if ((flags & FMODE_READABLE) && (flags & FMODE_WRITABLE)) { if ((flags & FMODE_READABLE) && (flags & FMODE_WRITABLE)) {
close(pr[1]); close(pr[1]);
fd = pr[0]; fd = pr[0];
...@@ -278,8 +276,9 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) ...@@ -278,8 +276,9 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
DATA_TYPE(io) = &mrb_io_type; DATA_TYPE(io) = &mrb_io_type;
DATA_PTR(io) = fptr; DATA_PTR(io) = fptr;
return io; result = io;
} break;
case -1: /* error */ case -1: /* error */
saved_errno = errno; saved_errno = errno;
if (flags & FMODE_READABLE) { if (flags & FMODE_READABLE) {
...@@ -294,8 +293,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) ...@@ -294,8 +293,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass)
mrb_sys_fail(mrb, "pipe_open failed."); mrb_sys_fail(mrb, "pipe_open failed.");
break; break;
} }
return result;
return mrb_nil_value();
} }
mrb_value mrb_value
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment