commit a70571258d1253e5576b94fdc21209a54041626e
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Sat Mar 22 12:09:18 2014 +0100

    Fix assertion when ChkTeX hit math.
    
    The problem here was that we used texted-only methods (via paragraph()), 
which triggered the assertion as soon as we were inside math.
    
    Fixes: #8798

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 435a806..ab5501c 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -62,6 +62,8 @@
 #include "insets/InsetRef.h"
 #include "insets/InsetText.h"
 
+#include "mathed/MathData.h"
+
 #include "frontends/alert.h"
 #include "frontends/Application.h"
 #include "frontends/Delegates.h"
@@ -2496,7 +2498,8 @@ void BufferView::putSelectionAt(DocIterator const & cur,
 
 bool BufferView::selectIfEmpty(DocIterator & cur)
 {
-       if (!cur.paragraph().empty())
+       if ((cur.inTexted() && !cur.paragraph().empty())
+           || cur.inMathed() && !cur.cell().empty())
                return false;
 
        pit_type const beg_pit = cur.pit();
diff --git a/src/frontends/qt4/GuiErrorList.cpp 
b/src/frontends/qt4/GuiErrorList.cpp
index 9924d64..1ab9198 100644
--- a/src/frontends/qt4/GuiErrorList.cpp
+++ b/src/frontends/qt4/GuiErrorList.cpp
@@ -188,7 +188,7 @@ bool GuiErrorList::goTo(int item)
                return false;
        }
        // if pos_end is 0, this means it is end-of-paragraph
-       pos_type const s = dit.paragraph().size();
+       pos_type const s = dit.lastpos();
        pos_type const end = err.pos_end ? min(err.pos_end, s) : s;
        pos_type const start = min(err.pos_start, end);
        pos_type const range = end == start ? s - start : end - start;

Reply via email to