diff options
| author | Tomoyuki Sahara <[email protected]> | 2013-09-30 11:56:15 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2013-09-30 11:56:15 +0900 |
| commit | 8b48e2b4a42c9e1c697f94d3bb362a12484fe2e7 (patch) | |
| tree | 8e901a3c9fab7e10b7019b874f9bc350b014e4d7 /src | |
| parent | 97899a6922a016d4e488f929f009db78d46d7b1d (diff) | |
| download | mruby-8b48e2b4a42c9e1c697f94d3bb362a12484fe2e7.tar.gz mruby-8b48e2b4a42c9e1c697f94d3bb362a12484fe2e7.zip | |
syswrite must write to fd2 if it is properly set.
closes #3.
Diffstat (limited to 'src')
| -rw-r--r-- | src/io.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -470,7 +470,7 @@ mrb_io_syswrite(mrb_state *mrb, mrb_value io) { struct mrb_io *fptr; mrb_value str, buf; - int length; + int fd, length; mrb_get_args(mrb, "S", &str); if (mrb_type(str) != MRB_TT_STRING) { @@ -480,7 +480,12 @@ mrb_io_syswrite(mrb_state *mrb, mrb_value io) } fptr = (struct mrb_io *)mrb_get_datatype(mrb, io, &mrb_io_type); - length = write(fptr->fd, RSTRING_PTR(buf), RSTRING_LEN(buf)); + if (fptr->fd2 == -1) { + fd = fptr->fd; + } else { + fd = fptr->fd2; + } + length = write(fd, RSTRING_PTR(buf), RSTRING_LEN(buf)); return mrb_fixnum_value(length); } |
