summaryrefslogtreecommitdiff
path: root/core/apps/embeddedkonsole/MyPty.cpp
Side-by-side diff
Diffstat (limited to 'core/apps/embeddedkonsole/MyPty.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/MyPty.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/core/apps/embeddedkonsole/MyPty.cpp b/core/apps/embeddedkonsole/MyPty.cpp
index 7e820ad..e7d8274 100644
--- a/core/apps/embeddedkonsole/MyPty.cpp
+++ b/core/apps/embeddedkonsole/MyPty.cpp
@@ -78,8 +78,9 @@
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/wait.h>
+#undef HAVE_OPENPTY
#ifdef HAVE_OPENPTY
#include <pty.h>
#endif
@@ -145,8 +146,14 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int)
if ( !cpid ) {
// child - exec shell on tty
for (int sig = 1; sig < NSIG; sig++) signal(sig,SIG_DFL);
+
+ // attempt to keep apm driver from killing us on power on/off
+ signal(SIGSTOP, SIG_IGN);
+ signal(SIGCONT, SIG_IGN);
+ signal(SIGTSTP, SIG_IGN);
+
int ttyfd = open(ttynam, O_RDWR);
dup2(ttyfd, STDIN_FILENO);
dup2(ttyfd, STDOUT_FILENO);
dup2(ttyfd, STDERR_FILENO);
@@ -162,10 +169,9 @@ int MyPty::run(const char* cmd, QStrList &, const char*, int)
tcgetattr( STDIN_FILENO, &ttmode );
ttmode.c_cc[VINTR] = 3;
ttmode.c_cc[VERASE] = 8;
tcsetattr( STDIN_FILENO, TCSANOW, &ttmode );
- if(strlen(getenv("TERM"))<=0)
- setenv("TERM","vt100",1);
+ setenv("TERM","vt100",1);
setenv("COLORTERM","0",1);
if (getuid() == 0) {
char msg[] = "WARNING: You are running this shell as root!\n";