erik@mpx2.UUCP (Erik Murrey) (11/23/88)
GNU Emacs 18.52.4 of Tue Nov 22 1988 on mpx2 (xenix) (This may be old news, for all I know...) Problem: Inferior shells on System-V Unix-es with ptys do not get a controlling terminal. Repeat By: Run an inferior shell. Try to echo something to /dev/tty. error: /dev/tty cannot create. A "ps" will also show a ? in the TTY column. Fix: In process.c, the setpgrp() code in create_process() doesn't get compiled in unless you have TIOCNOTTY defined. I don't think that TIOCNOTTY would be defined under AT&T Sys-V. In any case, it wasn't on my Xenix System-V box. To fix it, I moved the #endif of TIOCNOTTY up above the test for USG: It worked for me... mileage may vary... *** emacs18_52/src/process.c.ORIG Sat Aug 20 10:27:41 1988 --- emacs18_52/src/process.c Tue Nov 22 17:53:03 1988 *************** *** 998,1004 int j = open ("/dev/tty", O_RDWR, 0); ioctl (j, TIOCNOTTY, 0); close (j); ! #if !defined (RTU) && !defined(UNIPLUS) #ifdef USG setpgrp (); --- 998,1006 ----- int j = open ("/dev/tty", O_RDWR, 0); ioctl (j, TIOCNOTTY, 0); close (j); ! } ! #endif /* TIOCNOTTY */ ! if (ptyname) { #if !defined (RTU) && !defined(UNIPLUS) #ifdef USG setpgrp (); *************** *** 1012,1018 abort (); #endif /* not UNIPLUS and not RTU */ } - #endif /* TIOCNOTTY */ #endif /* HAVE_PTYS */ child_setup_tty (xforkout); child_setup (xforkin, xforkout, xforkout, new_argv, env); --- 1014,1019 ----- abort (); #endif /* not UNIPLUS and not RTU */ } #endif /* HAVE_PTYS */ child_setup_tty (xforkout); child_setup (xforkin, xforkout, xforkout, new_argv, env); -- Erik Murrey /| // /~~~~/ | / MPX Data Systems, Inc. / | / / /____/ |/ erik@mpx2.UUCP / / / / /| Data Systems, Inc. {spl1,vu-vlsi,bpa}!mpx1!erik / / / / |====================