summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-10-10 19:56:29 (UTC)
committer llornkcor <llornkcor>2002-10-10 19:56:29 (UTC)
commit4aa326251d797d12e5228a7a1ea6d45518e64ba5 (patch) (unidiff)
tree4cc63e5bb3e9aa520a90780de261979ffc3dfd21
parent946708623722041624b0435acfb2fa678959adba (diff)
downloadopie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.zip
opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.tar.gz
opie-4aa326251d797d12e5228a7a1ea6d45518e64ba5.tar.bz2
bastard standard login shell
Diffstat (more/less context) (ignore 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 @@
59 Another technic are UNIX 98 PTY's. These are supported also, and prefered 59 Another technic are UNIX 98 PTY's. These are supported also, and prefered
60 over the (obsolete) predecessor. 60 over the (obsolete) predecessor.
61 61
62 There's a sinister ioctl(2), signal(2) and job control stuff 62 There's a sinister ioctl(2), signal(2) and job control stuff
63 nessesary to make everything work as it should. 63 nessesary to make everything work as it should.
64*/ 64*/
65 65
66 66
67#include <qfileinfo.h>
67#include <qapplication.h> 68#include <qapplication.h>
68#include <qsocketnotifier.h> 69#include <qsocketnotifier.h>
69#include <qstring.h> 70#include <qstring.h>
70 71
71#include <stdlib.h> 72#include <stdlib.h>
72#include <stdio.h> 73#include <stdio.h>
73#include <signal.h> 74#include <signal.h>
74#include <fcntl.h> 75#include <fcntl.h>
@@ -164,18 +165,20 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int)
164 tcsetattr( STDIN_FILENO, TCSANOW, &ttmode ); 165 tcsetattr( STDIN_FILENO, TCSANOW, &ttmode );
165 setenv("TERM","vt100",1); 166 setenv("TERM","vt100",1);
166 setenv("COLORTERM","0",1); 167 setenv("COLORTERM","0",1);
167 168
168 if (getuid() == 0) { 169 if (getuid() == 0) {
169 char msg[] = "WARNING: You are running this shell as root!\n"; 170 char msg[] = "WARNING: You are running this shell as root!\n";
170 write(ttyfd, msg, sizeof(msg)); 171 write(ttyfd, msg, sizeof(msg));
171 } 172 }
172; //creates a login shell 173
173 execl(cmd, cmd, "--login", 0); 174 QString ccmd = "-"+QFileInfo(cmd).fileName(); //creates a login shell
175
176 execl(cmd, ccmd.latin1(), 0);
174 177
175 donePty(); 178 donePty();
176 exit(-1); 179 exit(-1);
177 } 180 }
178 181
179 // parent - continue as a widget 182 // parent - continue as a widget
180 QSocketNotifier* sn_r = new QSocketNotifier(fd,QSocketNotifier::Read,this); 183 QSocketNotifier* sn_r = new QSocketNotifier(fd,QSocketNotifier::Read,this);
181 QSocketNotifier* sn_e = new QSocketNotifier(fd,QSocketNotifier::Exception,this); 184 QSocketNotifier* sn_e = new QSocketNotifier(fd,QSocketNotifier::Exception,this);