commit 1cc81b1c9cfc6eff58275faab4dde2f454d6f774
Author: Juergen Spitzmueller <[email protected]>
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 1398a11..25ebde3 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"
@@ -2498,7 +2500,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;