commit 191d44a5571402516719c01f9febd6437bc18837
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Fri Sep 27 10:47:36 2013 +0200
Fix bug #8884: Crash when "navigate to next change"
The two fixes here a obviously right, although it is not clear why they are
sufficient to fix the bug. Anyway I cannot reproduce any crash with it.
* the first part just conditions a whole if/else to
change_next_pos.changed(). Originally, only the if branch was concerned.
* the second part is to avoid calling CursorSlice::backwardPos() when
position is 0. Doing this leads to an assertion.
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 5c95801..5cb5c21 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -421,21 +421,24 @@ bool findChange(BufferView * bv, bool next)
// of this function). This will avoid changes to be selected half.
bool search_both_sides = false;
Cursor tmpcur = cur;
- // Leave math first
+ // Find enclosing text cursor
while (tmpcur.inMathed())
tmpcur.pop_back();
Change change_next_pos
= tmpcur.paragraph().lookupChange(tmpcur.pos());
- if (change_next_pos.changed() && cur.inMathed()) {
- cur = tmpcur;
- search_both_sides = true;
- } else if (tmpcur.pos() > 0 && tmpcur.inTexted()) {
- Change change_prev_pos
- = tmpcur.paragraph().lookupChange(tmpcur.pos() - 1);
- if (change_next_pos.isSimilarTo(change_prev_pos))
+ if (change_next_pos.changed()) {
+ if (cur.inMathed()) {
+ cur = tmpcur;
search_both_sides = true;
+ } else if (tmpcur.pos() > 0 && tmpcur.inTexted()) {
+ Change change_prev_pos
+ = tmpcur.paragraph().lookupChange(tmpcur.pos()
- 1);
+ if (change_next_pos.isSimilarTo(change_prev_pos))
+ search_both_sides = true;
+ }
}
+ // find the next change
if (!findChange(cur, next))
return false;
@@ -443,7 +446,7 @@ bool findChange(BufferView * bv, bool next)
CursorSlice & tip = cur.top();
- if (!next)
+ if (!next && tip.pos() > 0)
// take a step into the change
tip.backwardPos();
diff --git a/status.20x b/status.20x
index 66f5198..dfe64f7 100644
--- a/status.20x
+++ b/status.20x
@@ -77,7 +77,10 @@ What's new
- Fix hang when using BibTeX files with really long author lists (bug 8944).
-- Fix crash with changetracking in bibliography environment (bug 8646).
+- Fix crash with changetracking in bibliography environment (bug
+ 8646).
+
+- Fix crash when navigating to next change (bug 8884).
- Fix crash when optional argument inside a math macro was deleted (bug 8329).