mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/pty/pty.c (establishShell): handshaking before close slave
device. [ruby-talk:263410] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a37d419c5d
commit
27b103f37a
2 changed files with 8 additions and 2 deletions
|
@ -1,4 +1,7 @@
|
|||
Tue Aug 7 14:56:50 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
Tue Aug 7 14:58:39 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* ext/pty/pty.c (establishShell): handshaking before close slave
|
||||
device. [ruby-talk:263410]
|
||||
|
||||
* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): constified.
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ establishShell(int argc, VALUE *argv, struct pty_info *info,
|
|||
{
|
||||
int master,slave;
|
||||
rb_pid_t pid;
|
||||
char *p,*getenv();
|
||||
char *p, tmp, *getenv();
|
||||
struct passwd *pwent;
|
||||
VALUE v;
|
||||
struct exec_info arg;
|
||||
|
@ -264,6 +264,7 @@ establishShell(int argc, VALUE *argv, struct pty_info *info,
|
|||
}
|
||||
close(master);
|
||||
#endif
|
||||
write(slave, "", 1);
|
||||
dup2(slave,0);
|
||||
dup2(slave,1);
|
||||
dup2(slave,2);
|
||||
|
@ -279,6 +280,7 @@ establishShell(int argc, VALUE *argv, struct pty_info *info,
|
|||
_exit(1);
|
||||
}
|
||||
|
||||
read(master, &tmp, 1);
|
||||
close(slave);
|
||||
|
||||
info->child_pid = pid;
|
||||
|
@ -342,6 +344,7 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int fail)
|
|||
#if defined I_PUSH && !defined linux
|
||||
if(ioctl(j, I_PUSH, "ptem") != -1) {
|
||||
if(ioctl(j, I_PUSH, "ldterm") != -1) {
|
||||
ioctl(j, I_PUSH, "ttcompat");
|
||||
#endif
|
||||
*master = i;
|
||||
*slave = j;
|
||||
|
|
Loading…
Reference in a new issue