summaryrefslogtreecommitdiff
path: root/core/apps/embeddedkonsole/MyPty.cpp
Unidiff
Diffstat (limited to 'core/apps/embeddedkonsole/MyPty.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/MyPty.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/apps/embeddedkonsole/MyPty.cpp b/core/apps/embeddedkonsole/MyPty.cpp
index 3622d48..6421ab0 100644
--- a/core/apps/embeddedkonsole/MyPty.cpp
+++ b/core/apps/embeddedkonsole/MyPty.cpp
@@ -160,25 +160,26 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int)
160#endif 160#endif
161 tcgetattr( STDIN_FILENO, &ttmode ); 161 tcgetattr( STDIN_FILENO, &ttmode );
162 ttmode.c_cc[VINTR] = 3; 162 ttmode.c_cc[VINTR] = 3;
163 ttmode.c_cc[VERASE] = 8; 163 ttmode.c_cc[VERASE] = 8;
164 tcsetattr( STDIN_FILENO, TCSANOW, &ttmode ); 164 tcsetattr( STDIN_FILENO, TCSANOW, &ttmode );
165 setenv("TERM","vt100",1); 165 setenv("TERM","vt100",1);
166 setenv("COLORTERM","0",1); 166 setenv("COLORTERM","0",1);
167 167
168 if (getuid() == 0) { 168 if (getuid() == 0) {
169 char msg[] = "WARNING: You are running this shell as root!\n"; 169 char msg[] = "WARNING: You are running this shell as root!\n";
170 write(ttyfd, msg, sizeof(msg)); 170 write(ttyfd, msg, sizeof(msg));
171 } 171 }
172 execl(cmd, cmd, 0); 172; //creates a login shell
173 execl(cmd, cmd, "--login", 0);
173 174
174 donePty(); 175 donePty();
175 exit(-1); 176 exit(-1);
176 } 177 }
177 178
178 // parent - continue as a widget 179 // parent - continue as a widget
179 QSocketNotifier* sn_r = new QSocketNotifier(fd,QSocketNotifier::Read,this); 180 QSocketNotifier* sn_r = new QSocketNotifier(fd,QSocketNotifier::Read,this);
180 QSocketNotifier* sn_e = new QSocketNotifier(fd,QSocketNotifier::Exception,this); 181 QSocketNotifier* sn_e = new QSocketNotifier(fd,QSocketNotifier::Exception,this);
181 connect(sn_r,SIGNAL(activated(int)),this,SLOT(readPty())); 182 connect(sn_r,SIGNAL(activated(int)),this,SLOT(readPty()));
182 connect(sn_e,SIGNAL(activated(int)),this,SLOT(error())); 183 connect(sn_e,SIGNAL(activated(int)),this,SLOT(error()));
183 184
184 return 0; 185 return 0;