X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flyxfind.cpp;h=f4bf76b64f5da25b3ed1260f9e169e7a4a3f1e46;hb=861c6167ca5f1329e16dd788489a7c03772e2332;hp=139e7b398e4ae7b9d47a470e8062abd39e2dc68e;hpb=48c7d9b028b069b7819987378577253b7e803e86;p=lyx.git diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp index 139e7b398e..f4bf76b64f 100644 --- a/src/lyxfind.cpp +++ b/src/lyxfind.cpp @@ -1565,8 +1565,8 @@ int Intervall::findclosing(int start, int end, char up = '{', char down = '}', i depth++; } else if (c == down) { - repeat--; if (depth == 0) { + repeat--; if ((repeat <= 0) || (par[i+1] != up)) return i; } @@ -1911,12 +1911,16 @@ void LatexInfo::buildEntries(bool isPatternString) int endpar = 2 + interval_.findclosing(found._dataStart, interval_.par.length(), '{', '}', closings); found._dataStart = endpar; found._tokensize = found._dataStart - found._tokenstart; - closings = 1; + closings = 0; } if (interval_.par.substr(found._dataStart-1, 15).compare("\\endarguments{}") == 0) { found._dataStart += 15; } - size_t endpos = interval_.findclosing(found._dataStart, interval_.par.length(), '{', '}', closings); + size_t endpos; + if (closings < 1) + endpos = found._dataStart - 1; + else + endpos = interval_.findclosing(found._dataStart, interval_.par.length(), '{', '}', closings); if (found.keytype == KeyInfo::isList) { // Check if it really is list env static regex const listre("^([a-z]+)$"); @@ -2041,9 +2045,9 @@ void LatexInfo::buildKeys(bool isPatternString) makeKey("url|href|vref|thanks", KeyInfo(KeyInfo::isStandard, 1, false), isPatternString); // Ignore deleted text - makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString); + makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString); // but preserve added text - makeKey("lyxadded", KeyInfo(KeyInfo::doRemove, 1, false), isPatternString); + makeKey("lyxadded", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString); // Macros to remove, but let the parameter survive // No split @@ -3415,7 +3419,6 @@ int findForwardAdv(DocIterator & cur, MatchStringAdv & match) else { if (++match_len_zero_count > 3) { LYXERR(Debug::FIND, "match_len2_zero_count: " << match_len_zero_count << ", match_len was " << match_len); - match_len_zero_count = 0; } break; }