summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-25 16:33:06 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-25 16:33:06 +0000
commit16161acfedeaeb665a2f7db6410196568c3270ec (patch)
tree738972e7ea3291e9478a2903a22fbabe725d651b
parentf14ec698b923b68a19263efadd8ccef922c61d77 (diff)
merges r20757 from trunk into ruby_1_9_1. [ruby-dev:37560]
* ext/pty/pty.c (child_info): add slavename. (chfunc): use slavename. (establishShell): set slavename. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--ext/pty/pty.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 32a4910ca5..afbe2d8b2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Dec 15 20:59:10 2008 Tanaka Akira <akr@fsij.org>
+
+ * ext/pty/pty.c (child_info): add slavename.
+ (chfunc): use slavename.
+ (establishShell): set slavename.
+
Tue Dec 9 13:23:18 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_insnhelper.c (check_cfunc): use function pointer.
diff --git a/ext/pty/pty.c b/ext/pty/pty.c
index fc06d2dd5e..6e6852aa7a 100644
--- a/ext/pty/pty.c
+++ b/ext/pty/pty.c
@@ -191,6 +191,7 @@ pty_exec(VALUE v)
struct child_info {
int master, slave;
+ char *slavename;
int argc;
VALUE *argv;
};
@@ -240,7 +241,7 @@ 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);
@@ -296,6 +297,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);