summaryrefslogtreecommitdiff
path: root/ext/pty/pty.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-15 12:01:08 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-15 12:01:08 +0000
commit9bfd822bd1547e2e6bc549606159de1cb980690e (patch)
tree8efdcb3a17ee68412290531fb152625147555aac /ext/pty/pty.c
parentebed0a6e9afc24d53c19222a38268a01691bac8f (diff)
* ext/pty/pty.c (child_info): add slavename.
(chfunc): use slavename. (establishShell): set slavename. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/pty/pty.c')
-rw-r--r--ext/pty/pty.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/pty/pty.c b/ext/pty/pty.c
index b7da3d17ab..cb147386a7 100644
--- a/ext/pty/pty.c
+++ b/ext/pty/pty.c
@@ -145,6 +145,7 @@ pty_exec(VALUE v)
struct child_info {
int master, slave;
+ char *slavename;
int argc;
VALUE *argv;
};
@@ -193,7 +194,7 @@ int chfunc(void *data)
/* errors ignored for sun */
#else
close(slave);
- slave = open(SlaveName, O_RDWR);
+ slave = open(carg->slavename, O_RDWR);
if (slave < 0) {
perror("open: pty slave");
_exit(1);
@@ -249,6 +250,7 @@ establishShell(int argc, VALUE *argv, struct pty_info *info,
carg.master = master;
carg.slave = slave;
+ carg.slavename = SlaveName;
carg.argc = argc;
carg.argv = argv;
pid = rb_fork(0, chfunc, &carg, Qnil);