From 4dcd9af228643d37bb63ab1642c5128b3b30f4bd Mon Sep 17 00:00:00 2001 From: rsc Date: Thu, 15 Apr 2004 02:04:30 +0000 Subject: 9term manages to turn off echo at the right times under SunOS ? --- src/cmd/9term/rcstart.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/cmd/9term/rcstart.c') diff --git a/src/cmd/9term/rcstart.c b/src/cmd/9term/rcstart.c index ec168e99..499c5918 100644 --- a/src/cmd/9term/rcstart.c +++ b/src/cmd/9term/rcstart.c @@ -1,11 +1,21 @@ #include #include +#if 0 +#include +#endif +#include #include "term.h" +/* + * Somehow we no longer automatically exit + * when the shell exits; hence the SIGCHLD stuff. + * Something that can be fixed? Axel. + */ +static int pid; + int -rcstart(int argc, char **argv, int *pfd) +rcstart(int argc, char **argv, int *pfd, int *tfd) { - int pid; int fd[2]; char *xargv[3]; char slave[256]; @@ -27,7 +37,6 @@ rcstart(int argc, char **argv, int *pfd) if(getpts(fd, slave) < 0) sysfatal("getpts: %r\n"); - switch(pid = fork()) { case 0: putenv("TERM", "9term"); @@ -44,8 +53,11 @@ rcstart(int argc, char **argv, int *pfd) sysfatal("proc failed: %r"); break; } - close(fd[0]); *pfd = fd[1]; + if(tfd) + *tfd = fd[0]; + else + close(fd[0]); return pid; } -- cgit v1.2.3