cur.forwardInset();
cur.beginUndoGroup();
while(cur && iterations < max_iter) {
- Inset * ins = cur.nextInset();
+ Inset * const ins = cur.nextInset();
if (!ins)
break;
docstring insname = ins->layoutName();
break;
insname = insname.substr(0, i);
}
- cur.forwardInset();
+ // if we did not delete the inset, skip it
+ if (!cur.nextInset() || cur.nextInset() == ins)
+ cur.forwardInset();
}
cur.endUndoGroup();
cur = savecur;
Inset * inset = cur.nextInset();
if (!inset || inset->lyxCode() != CITE_CODE)
inset = cur.prevInset();
- if (inset->lyxCode() == CITE_CODE) {
+ if (inset && inset->lyxCode() == CITE_CODE) {
InsetCitation * icite = static_cast<InsetCitation *>(inset);
if (icite->addKey(arg)) {
dr.forceBufferUpdate();