author | llornkcor <llornkcor> | 2002-10-10 19:56:29 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-10-10 19:56:29 (UTC) |
commit | 4aa326251d797d12e5228a7a1ea6d45518e64ba5 (patch) (side-by-side diff) | |
tree | 4cc63e5bb3e9aa520a90780de261979ffc3dfd21 | |
parent | 946708623722041624b0435acfb2fa678959adba (diff) | |
download | opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.zip opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.tar.gz opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.tar.bz2 |
bastard standard login shell
-rw-r--r-- | core/apps/embeddedkonsole/MyPty.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/core/apps/embeddedkonsole/MyPty.cpp b/core/apps/embeddedkonsole/MyPty.cpp index 6421ab0..9adc248 100644 --- a/core/apps/embeddedkonsole/MyPty.cpp +++ b/core/apps/embeddedkonsole/MyPty.cpp @@ -55,24 +55,25 @@ linked by a null-modem cable. Being based on devices the number of simultanous instances of this class is (globally) limited by the number of those device pairs, which is 256. Another technic are UNIX 98 PTY's. These are supported also, and prefered over the (obsolete) predecessor. There's a sinister ioctl(2), signal(2) and job control stuff nessesary to make everything work as it should. */ +#include <qfileinfo.h> #include <qapplication.h> #include <qsocketnotifier.h> #include <qstring.h> #include <stdlib.h> #include <stdio.h> #include <signal.h> #include <fcntl.h> #include <unistd.h> #include <termios.h> #include <sys/types.h> #include <sys/ioctl.h> @@ -160,26 +161,28 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int) #endif tcgetattr( STDIN_FILENO, &ttmode ); ttmode.c_cc[VINTR] = 3; ttmode.c_cc[VERASE] = 8; tcsetattr( STDIN_FILENO, TCSANOW, &ttmode ); 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)); } -; //creates a login shell - execl(cmd, cmd, "--login", 0); + + QString ccmd = "-"+QFileInfo(cmd).fileName(); //creates a login shell + + execl(cmd, ccmd.latin1(), 0); donePty(); exit(-1); } // parent - continue as a widget QSocketNotifier* sn_r = new QSocketNotifier(fd,QSocketNotifier::Read,this); QSocketNotifier* sn_e = new QSocketNotifier(fd,QSocketNotifier::Exception,this); connect(sn_r,SIGNAL(activated(int)),this,SLOT(readPty())); connect(sn_e,SIGNAL(activated(int)),this,SLOT(error())); return 0; |