From: Scott Kostyshak Date: Sat, 4 Apr 2015 17:39:42 +0000 (-0400) Subject: Detect when an external command crashes X-Git-Tag: 2.2.0alpha1~1055 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=7032b0374801d7e2621c221ce43f409855a901d6;p=features.git Detect when an external command crashes This fixes a situation where LyX did not detect that something went wrong (that an external comman crashed) and reported that export was successful. To reproduce, use the following version of LuaTeX (the bug in LuaTeX causing the crash has since been fixed): LuaTeX, Version beta-0.79.1 (TeX Live 2014) (rev 4971) Then open FeynmanDiagrams.lyx and export with PDF (LuaTeX). In the documentation [1] for QProcess::exitCode() it states: "This value is not valid unless exitStatus() returns NormalExit." For more information, see: https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg185317.html [1] http://doc.qt.io/qt-5/qprocess.html#exitCode --- diff --git a/src/support/Systemcall.cpp b/src/support/Systemcall.cpp index 9327613dfd..2f277f6b9e 100644 --- a/src/support/Systemcall.cpp +++ b/src/support/Systemcall.cpp @@ -610,6 +610,10 @@ int SystemcallPrivate::exitCode() if (!process_) return -1; + // From Qt's documentation, in regards to QProcess::exitCode(), + // "This value is not valid unless exitStatus() returns NormalExit" + if (process_->exitStatus() != QProcess::NormalExit) + return -1; return process_->exitCode(); }