#include "buffer.h"
#include "cursor.h"
#include "CutAndPaste.h"
+#include "buffer_funcs.h"
#include "BufferView.h"
#include "debug.h"
#include "funcrequest.h"
++num;
}
- bv->buffer()->text().init(bv);
+ updateLabels(buf);
bv->putSelectionAt(doc_iterator_begin(buf.inset()), 0, false);
if (num)
buf.markDirty();
Change orig_change = cur.paragraph().lookupChange(cur.pos());
DocIterator et = doc_iterator_end(cur.inset());
+ DocIterator ok = cur; // see below
for (; cur != et; cur.forwardPosNoDescend()) {
+ ok = cur;
Change change = cur.paragraph().lookupChange(cur.pos());
if (change != orig_change) {
break;
}
}
+
+ // avoid crash (assertion violation) if the imaginary end-of-par
+ // character of the last paragraph of the document is marked as changed
+ if (cur == et) {
+ cur = ok;
+ }
+
// Now put cursor to end of selection:
bv->cursor().setCursor(cur);
bv->cursor().setSelection();
- // if we used a lfun like in find/replace, dispatch would do
- // that for us
- bv->update();
return true;
}