Ignore tracked deletions in simple find (#11051)

This commit is contained in:
Juergen Spitzmueller 2021-01-12 16:11:58 +01:00
parent 2318baec7b
commit d87511308b
2 changed files with 8 additions and 3 deletions

View File

@ -4388,6 +4388,13 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
int i = 0;
pos_type const parsize = d->text_.size();
for (i = 0; i < strsize && pos < parsize; ++i, ++pos) {
// ignore deleted matter
if (!del && isDeleted(pos)) {
if (pos == parsize - 1)
break;
pos++;
continue;
}
// Ignore "invisible" letters such as ligature breaks
// and hyphenation chars while searching
while (pos < parsize - 1 && isInset(pos)) {
@ -4404,8 +4411,6 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
break;
if (!cs && uppercase(str[i]) != uppercase(d->text_[pos]))
break;
if (!del && isDeleted(pos))
break;
}
if (i != strsize)

View File

@ -464,7 +464,7 @@ bool lyxfind(BufferView * bv, FuncRequest const & ev)
bool matchword = parse_bool(howto);
bool forward = parse_bool(howto);
return findOne(bv, search, casesensitive, matchword, forward, true, true);
return findOne(bv, search, casesensitive, matchword, forward, false, true);
}