-
-
- d.startProcess(cmd, path);
- if (!d.waitWhile(SystemcallPrivate::Starting, process_events, -1)) {
- LYXERR0("Systemcall: '" << cmd << "' did not start!");
- LYXERR0("error " << d.errorMessage());
- return 10;
- }
-
- if (how == DontWait) {
- QProcess* released = d.releaseProcess();
- (void) released; // TODO who deletes it?
- return 0;
+ bool do_events = process_events || how == WaitLoop;
+
+ d.startProcess(cmd, path, lpath, how == DontWait);
+ if (how == DontWait && d.state == SystemcallPrivate::Running)
+ return OK;
+
+ if (d.state == SystemcallPrivate::Error
+ || !d.waitWhile(SystemcallPrivate::Starting, do_events, -1)) {
+ if (d.state == SystemcallPrivate::Error) {
+ LYXERR0("Systemcall: '" << cmd << "' did not start!");
+ LYXERR0("error " << d.errorMessage());
+ return NOSTART;
+ } else if (d.state == SystemcallPrivate::Killed) {
+ LYXERR0("Killed: " << cmd);
+ return KILLED;
+ }