summaryrefslogtreecommitdiff
path: root/core
authorllornkcor <llornkcor>2004-04-07 08:00:32 (UTC)
committer llornkcor <llornkcor>2004-04-07 08:00:32 (UTC)
commiteb2e474c18382c50774b868a17dc3cfc8ec026ba (patch) (side-by-side diff)
tree45e899436fabb58f263e7d7ab404f92078cd6e25 /core
parent00dda4de55885bf3942fe3d4b6cd552ee6f020bf (diff)
downloadopie-eb2e474c18382c50774b868a17dc3cfc8ec026ba.zip
opie-eb2e474c18382c50774b868a17dc3cfc8ec026ba.tar.gz
opie-eb2e474c18382c50774b868a17dc3cfc8ec026ba.tar.bz2
non opie main
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/main.cpp57
1 files changed, 56 insertions, 1 deletions
diff --git a/core/apps/embeddedkonsole/main.cpp b/core/apps/embeddedkonsole/main.cpp
index b456ce2..b851d3e 100644
--- a/core/apps/embeddedkonsole/main.cpp
+++ b/core/apps/embeddedkonsole/main.cpp
@@ -21,10 +21,65 @@
#include "konsole.h"
-#include <opie2/oapplicationfactory.h>
+#ifdef QT_QWS_OPIE
+#include <opie2/oapplicationfactory.h>
/* --| main |------------------------------------------------------ */
using namespace Opie::Core;
OPIE_EXPORT_APP( OApplicationFactory<Konsole> )
+#else //for non opie builds
+
+#include <qpe/qpeapplication.h>
+
+#include <qfile.h>
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <pwd.h>
+#include <sys/types.h>
+
+
+/* --| main |------------------------------------------------------ */
+ int main(int argc, char* argv[]) {
+ if(setuid(getuid()) !=0) qDebug("setuid failed");
+ if(setgid(getgid()) != 0) qDebug("setgid failed"); // drop privileges
+
+ QPEApplication a( argc, argv );
+#ifdef FAKE_CTRL_AND_ALT
+ qDebug("Fake Ctrl and Alt defined");
+ QPEApplication::grabKeyboard(); // for CTRL and ALT
+#endif
+
+ QStrList tmp;
+ const char* shell = getenv("SHELL");
+
+ if (shell == NULL || *shell == '\0') {
+ struct passwd *ent = 0;
+ uid_t me = getuid();
+ shell = "/bin/sh";
+
+ while ( (ent = getpwent()) != 0 ) {
+ if (ent->pw_uid == me) {
+ if (ent->pw_shell != "")
+ shell = ent->pw_shell;
+ break;
+ }
+ }
+ endpwent();
+ }
+
+ if( putenv((char*)"COLORTERM=") !=0)
+ qDebug("putenv failed"); // to trigger mc's color detection
+
+ Konsole m( "test", shell, tmp, TRUE );
+ m.setCaption( Konsole::tr("Terminal") );
+ a.showMainWidget( &m );
+
+ return a.exec();
+}
+
+#endif