author | erik <erik> | 2007-04-20 21:21:14 (UTC) |
---|---|---|
committer | erik <erik> | 2007-04-20 21:21:14 (UTC) |
commit | d07beba6b9351c6b575235522781e3ce8495e578 (patch) (side-by-side diff) | |
tree | 8c5d9cca84d79d7d3016ceb187a1a67a8adba662 | |
parent | fb862bdc6c9a6f5b6e7529823eb4b56cc7085a59 (diff) | |
download | opie-d07beba6b9351c6b575235522781e3ce8495e578.zip opie-d07beba6b9351c6b575235522781e3ce8495e578.tar.gz opie-d07beba6b9351c6b575235522781e3ce8495e578.tar.bz2 |
additional info to a comment about pty mangling
-rw-r--r-- | core/apps/embeddedkonsole/MyPty.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/core/apps/embeddedkonsole/MyPty.cpp b/core/apps/embeddedkonsole/MyPty.cpp index 4b1ae59..c11889e 100644 --- a/core/apps/embeddedkonsole/MyPty.cpp +++ b/core/apps/embeddedkonsole/MyPty.cpp @@ -140,49 +140,49 @@ void MyPty::error() int MyPty::run(const char* cmd, QStrList &, const char*, int) { // This is code from the Qt DumbTerminal example cpid = fork(); if ( !cpid ) { // child - exec shell on tty for (int sig = 1; sig < NSIG; sig++) signal(sig,SIG_DFL); // attempt to keep apm driver from killing us on power on/off signal(SIGSTOP, SIG_IGN); signal(SIGCONT, SIG_IGN); signal(SIGTSTP, SIG_IGN); int ttyfd = open(ttynam, O_RDWR); dup2(ttyfd, STDIN_FILENO); dup2(ttyfd, STDOUT_FILENO); dup2(ttyfd, STDERR_FILENO); // should be done with tty, so close it close(ttyfd); static struct termios ttmode; if ( setsid() < 0 ) perror( "failed to set process group" ); #if defined (TIOCSCTTY) - // grabbed from APUE by Stevens + // grabbed from APUE by Stevens (see section 9.6, should be page 246) ioctl(STDIN_FILENO, TIOCSCTTY, 0); #endif tcgetattr( STDIN_FILENO, &ttmode ); ttmode.c_cc[VINTR] = 3; ttmode.c_cc[VERASE] = 8; tcsetattr( STDIN_FILENO, TCSANOW, &ttmode ); if(strlen(getenv("TERM"))<=0) setenv("TERM","vt100",1); setenv("COLORTERM","0",1); if (getuid() == 0) { char msg[] = "WARNING: You are running this shell as root!\n"; write(ttyfd, msg, sizeof(msg)); } QString ccmd = "-"+QFileInfo(cmd).fileName(); //creates a login shell execl(cmd, ccmd.latin1(), 0); donePty(); exit(-1); } |