On Wed, 25 Feb 2004, Harold L Hunt II wrote: > This issue has to have something to do with the way that commands are > launched from the .XWinrc menu, since launching an xterm from another > xterm works just fine. Here is the code that launches commands > specified in the .XWinrc menus: > > case CMD_EXEC: > if (fork()==0) > { > struct rlimit rl; > unsigned long i; > > /* Close any open descriptors except for STD* */ > getrlimit (RLIMIT_NOFILE, &rl); > for (i = STDERR_FILENO+1; i < rl.rlim_cur; i++) > close(i);
If the stdin for the menu process isn't a tty, the inherited stdin for xterm still won't be a tty. Some stty settings can be set for non-tty's, and some cannot. Usually the differences between xterm and rxvt in this area are related to whether there is a real /dev/tty associated with the process. > /* Disassociate any TTYs */ > setsid(); The intent here is to prevent signals from propagating into the subprocess. > > execl ("/bin/sh", > "/bin/sh", > "-c", > m->menuItem[j].param, > NULL); > exit (0); > } > > I'm looking into it a little bit, but I think that others could shed > some light on this. > > Harold > -- Thomas E. Dickey http://invisible-island.net ftp://invisible-island.net