]> git.lyx.org Git - lyx.git/blobdiff - src/support/SystemcallPrivate.h
More requires --> required, for C++2a.
[lyx.git] / src / support / SystemcallPrivate.h
index ee8aeb164cb9f964632b75ce970c70d74882ff04..6ab479f73c329fd5b68a786b9cd6a608c478e9a2 100644 (file)
@@ -24,7 +24,7 @@ class Systemcall;
 
 /**
  * Outputs to the console terminal the line buffered standard output and
- * error of a spawned process when there is a controlling terminal and 
+ * error of a spawned process when there is a controlling terminal and
  * stdout/stderr have not been redirected.
  */
 class SystemcallPrivate : public QObject
@@ -32,29 +32,35 @@ class SystemcallPrivate : public QObject
        Q_OBJECT
 
 public:
-       SystemcallPrivate(std::string const & outfile);
+       SystemcallPrivate(std::string const & infile, std::string const & outfile,
+                         std::string const & errfile);
        ~SystemcallPrivate();
 
        enum State {
                Starting,
                Running,
                Finished,
-               Error
+               Error,
+               Killed
        };
        State state;
 
        bool waitWhile(State, bool processEvents, int timeout = -1);
-       void startProcess(QString const & cmd, std::string const & path);
-       
+       void startProcess(QString const & cmd, std::string const & path,
+                         std::string const & lpath, bool detach);
+
        int exitCode();
 
        QString errorMessage() const;
        QString exitStatusMessage() const;
 
        QProcess* releaseProcess();
-       
+
        static void killProcess(QProcess * p);
 
+       // when true, kill any running script ASAP
+       static bool kill_script;
+
 
 public Q_SLOTS:
        void stdOut();
@@ -73,9 +79,11 @@ private:
        /// Index to the standard error buffer.
        size_t err_index_;
        ///
+       std::string in_file_;
+       ///
        std::string out_file_;
        ///
-       std::string texinputs_;
+       std::string err_file_;
 
        /// Size of buffers.
        static size_t const buffer_size_ = 200;
@@ -89,8 +97,11 @@ private:
 
        void waitAndProcessEvents();
        void processEvents();
-       void killProcess();     
+       void killProcess();
 
+       /// returns false if we killed the process
+       /// actually returns Systemcall::ReturnValue
+       bool waitAndCheck();
 };
 
 } // namespace support