-rw-r--r-- | libopie/oprocess.cpp | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/libopie/oprocess.cpp b/libopie/oprocess.cpp index 5db2b6c..c19881a 100644 --- a/libopie/oprocess.cpp +++ b/libopie/oprocess.cpp @@ -1,184 +1,183 @@ /* $Id$ This file is part of the KDE libraries Copyright (C) 1997 Christian Czezatke (e9025461@student.tuwien.ac.at) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // // KPROCESS -- A class for handling child processes in KDE without // having to take care of Un*x specific implementation details // // version 0.3.1, Jan 8th 1998 // // (C) Christian Czezatke // e9025461@student.tuwien.ac.at // // Changes: // // March 2nd, 1998: Changed parameter list for KShellProcess: // Arguments are now placed in a single string so that // <shell> -c <commandstring> is passed to the shell // to make the use of "operator<<" consistent with KProcess // // // Ported by Holger Freyther // <zekce> Harlekin: oprocess and say it was ported to Qt by the Opie developers an Qt 2 #include "oprocess.h" #define _MAY_INCLUDE_KPROCESSCONTROLLER_ #include "oprocctrl.h" //#include <config.h> #include <qfile.h> #include <qsocketnotifier.h> -#include <qregexp.h> #include <sys/time.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/socket.h> #include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <signal.h> #include <stdio.h> #include <string.h> #include <unistd.h> #ifdef HAVE_SYS_SELECT_H #include <sys/select.h> #endif #ifdef HAVE_INITGROUPS #include <grp.h> #endif #include <pwd.h> #include <qapplication.h> #include <qmap.h> //#include <kdebug.h> ///////////////////////////// // public member functions // ///////////////////////////// class OProcessPrivate { public: OProcessPrivate() : useShell(false) { } bool useShell; QMap<QString,QString> env; QString wd; QCString shell; }; OProcess::OProcess(QObject *parent, const char *name) : QObject(parent, name) { init ( ); } OProcess::OProcess(const QString &arg0, QObject *parent, const char *name) : QObject(parent, name) { init ( ); *this << arg0; } OProcess::OProcess(const QStringList &args, QObject *parent, const char *name) : QObject(parent, name) { init ( ); *this << args; } void OProcess::init ( ) { run_mode = NotifyOnExit; runs = false; pid_ = 0; status = 0; keepPrivs = false; innot = 0; outnot = 0; errnot = 0; communication = NoCommunication; input_data = 0; input_sent = 0; input_total = 0; d = 0; if (0 == OProcessController::theOProcessController) { (void) new OProcessController(); CHECK_PTR(OProcessController::theOProcessController); } OProcessController::theOProcessController->addOProcess(this); out[0] = out[1] = -1; in[0] = in[1] = -1; err[0] = err[1] = -1; } void OProcess::setEnvironment(const QString &name, const QString &value) { if (!d) d = new OProcessPrivate; d->env.insert(name, value); } void OProcess::setWorkingDirectory(const QString &dir) { if (!d) d = new OProcessPrivate; d->wd = dir; } void OProcess::setupEnvironment() { if (d) { QMap<QString,QString>::Iterator it; for(it = d->env.begin(); it != d->env.end(); ++it) setenv(QFile::encodeName(it.key()).data(), QFile::encodeName(it.data()).data(), 1); if (!d->wd.isEmpty()) chdir(QFile::encodeName(d->wd).data()); } } void OProcess::setRunPrivileged(bool keepPrivileges) { keepPrivs = keepPrivileges; } bool OProcess::runPrivileged() const { return keepPrivs; } |