X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2FSystemcall.h;h=1d4c75374a68148aac48b8d65b0c6b8ec960cbff;hb=12554c93d81f75f87c34040fd7737048d3518d6d;hp=2205ebc9b2a780fa62daa39058962a2abe0cd29d;hpb=8fe984090fc1f998bffe1e7c2c3ff86bcf657ab5;p=lyx.git diff --git a/src/support/Systemcall.h b/src/support/Systemcall.h index 2205ebc9b2..1d4c75374a 100644 --- a/src/support/Systemcall.h +++ b/src/support/Systemcall.h @@ -16,9 +16,6 @@ #define SYSTEMCALL_H #include -#include - -class QProcess; namespace lyx { namespace support { @@ -43,51 +40,14 @@ public: /** Start child process. * The string "what" contains a commandline with arguments separated - * by spaces. + * by spaces and encoded in the filesystem encoding. The string "path" + * contains the path to be prepended to the TEXINPUTS environment + * variable and encoded in utf-8. Unset "process_events" in case + * UI should be blocked while processing the external command. */ - int startscript(Starttype how, std::string const & what); -}; - - -/** - * Outputs to the console terminal the line buffered standard output and - * error of a spawned process when there is a controlling terminal and - * stdout/stderr have not been redirected. - */ -class ConOut : public QObject -{ - Q_OBJECT -public: - ConOut(QProcess * proc); - ~ConOut(); - - /// Should the standard output be displayed? - void showout() { showout_ = true; } - - /// Should the standard error be displayed? - void showerr() { showerr_ = true; } - -private: - /// Pointer to the process to monitor. - QProcess * proc_; - /// Index to the standard output buffer. - size_t outindex_; - /// Index to the standard error buffer. - size_t errindex_; - /// Size of buffers. - static size_t const bufsize_ = 200; - /// Standard output buffer. - char outdata_[bufsize_]; - /// Standard error buffer. - char errdata_[bufsize_]; - /// - bool showout_; - /// - bool showerr_; - -public Q_SLOTS: - void stdOut(); - void stdErr(); + int startscript(Starttype how, std::string const & what, + std::string const & path = empty_string(), + bool process_events = false); }; } // namespace support