commit 7032b0374801d7e2621c221ce43f409855a901d6 Author: Scott Kostyshak <skost...@lyx.org> Date: Sat Apr 4 13:39:42 2015 -0400
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 9327613..2f277f6 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(); }