summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-10-10 19:56:29 (UTC)
committer llornkcor <llornkcor>2002-10-10 19:56:29 (UTC)
commit4aa326251d797d12e5228a7a1ea6d45518e64ba5 (patch) (side-by-side diff)
tree4cc63e5bb3e9aa520a90780de261979ffc3dfd21
parent946708623722041624b0435acfb2fa678959adba (diff)
downloadopie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.zip
opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.tar.gz
opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.tar.bz2
bastard standard login shell
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/MyPty.cpp7
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
@@ -59,16 +59,17 @@
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>
@@ -164,18 +165,20 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int)
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);