author | llornkcor <llornkcor> | 2004-04-07 07:48:07 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2004-04-07 07:48:07 (UTC) |
commit | a1221f718bb1e9bcb6318dbf3314b9a35891caac (patch) (unidiff) | |
tree | 5f230f06f55029ee06954447bcd628002bb6bcec | |
parent | b3447b43b48cb6d720b76a1e9fc46acac6961dc8 (diff) | |
download | opie-a1221f718bb1e9bcb6318dbf3314b9a35891caac.zip opie-a1221f718bb1e9bcb6318dbf3314b9a35891caac.tar.gz opie-a1221f718bb1e9bcb6318dbf3314b9a35891caac.tar.bz2 |
respect TERM variable
-rw-r--r-- | core/apps/embeddedkonsole/MyPty.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/apps/embeddedkonsole/MyPty.cpp b/core/apps/embeddedkonsole/MyPty.cpp index d05e31e..4b1ae59 100644 --- a/core/apps/embeddedkonsole/MyPty.cpp +++ b/core/apps/embeddedkonsole/MyPty.cpp | |||
@@ -155,33 +155,35 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int) | |||
155 | dup2(ttyfd, STDIN_FILENO); | 155 | dup2(ttyfd, STDIN_FILENO); |
156 | dup2(ttyfd, STDOUT_FILENO); | 156 | dup2(ttyfd, STDOUT_FILENO); |
157 | dup2(ttyfd, STDERR_FILENO); | 157 | dup2(ttyfd, STDERR_FILENO); |
158 | // should be done with tty, so close it | 158 | // should be done with tty, so close it |
159 | close(ttyfd); | 159 | close(ttyfd); |
160 | static struct termios ttmode; | 160 | static struct termios ttmode; |
161 | if ( setsid() < 0 ) | 161 | if ( setsid() < 0 ) |
162 | perror( "failed to set process group" ); | 162 | perror( "failed to set process group" ); |
163 | #if defined (TIOCSCTTY) | 163 | #if defined (TIOCSCTTY) |
164 | // grabbed from APUE by Stevens | 164 | // grabbed from APUE by Stevens |
165 | ioctl(STDIN_FILENO, TIOCSCTTY, 0); | 165 | ioctl(STDIN_FILENO, TIOCSCTTY, 0); |
166 | #endif | 166 | #endif |
167 | tcgetattr( STDIN_FILENO, &ttmode ); | 167 | tcgetattr( STDIN_FILENO, &ttmode ); |
168 | ttmode.c_cc[VINTR] = 3; | 168 | ttmode.c_cc[VINTR] = 3; |
169 | ttmode.c_cc[VERASE] = 8; | 169 | ttmode.c_cc[VERASE] = 8; |
170 | tcsetattr( STDIN_FILENO, TCSANOW, &ttmode ); | 170 | tcsetattr( STDIN_FILENO, TCSANOW, &ttmode ); |
171 | setenv("TERM","vt100",1); | 171 | |
172 | if(strlen(getenv("TERM"))<=0) | ||
173 | setenv("TERM","vt100",1); | ||
172 | setenv("COLORTERM","0",1); | 174 | setenv("COLORTERM","0",1); |
173 | 175 | ||
174 | if (getuid() == 0) { | 176 | if (getuid() == 0) { |
175 | char msg[] = "WARNING: You are running this shell as root!\n"; | 177 | char msg[] = "WARNING: You are running this shell as root!\n"; |
176 | write(ttyfd, msg, sizeof(msg)); | 178 | write(ttyfd, msg, sizeof(msg)); |
177 | } | 179 | } |
178 | 180 | ||
179 | QString ccmd = "-"+QFileInfo(cmd).fileName(); //creates a login shell | 181 | QString ccmd = "-"+QFileInfo(cmd).fileName(); //creates a login shell |
180 | 182 | ||
181 | execl(cmd, ccmd.latin1(), 0); | 183 | execl(cmd, ccmd.latin1(), 0); |
182 | 184 | ||
183 | donePty(); | 185 | donePty(); |
184 | exit(-1); | 186 | exit(-1); |
185 | } | 187 | } |
186 | 188 | ||
187 | // parent - continue as a widget | 189 | // parent - continue as a widget |