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();
 }
 

Reply via email to