From: Richard Heck Date: Sun, 18 Dec 2016 03:12:27 +0000 (-0500) Subject: Re-organize, whitespace. X-Git-Tag: 2.3.0alpha1~554 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=ee251c626cd9ab59a12b9024304e01deee464acb;p=lyx.git Re-organize, whitespace. --- diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp index 22a6b40393..955ffc4a3b 100644 --- a/src/lyxfind.cpp +++ b/src/lyxfind.cpp @@ -951,15 +951,21 @@ int MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_begin) con if (at_begin && (opt.restr == FindAndReplaceOptions::R_ONLY_MATHS && !cur.inMathed()) ) return 0; + docstring docstr = stringifyFromForSearch(opt, cur, len); - LYXERR(Debug::FIND, "Matching against '" << lyx::to_utf8(docstr) << "'"); string str = normalize(docstr, true); + LYXERR(Debug::FIND, "Matching against '" << lyx::to_utf8(docstr) << "'"); LYXERR(Debug::FIND, "After normalization: '" << str << "'"); - if (! use_regexp) { - LYXERR(Debug::FIND, "Searching in normal mode: par_as_string='" << par_as_string << "', str='" << str << "'"); - LYXERR(Debug::FIND, "Searching in normal mode: lead_as_string='" << lead_as_string << "', par_as_string_nolead='" << par_as_string_nolead << "'"); + + if (!use_regexp) { + LYXERR(Debug::FIND, "Searching in normal mode: par_as_string='" + << par_as_string << "', str='" << str << "'"); + LYXERR(Debug::FIND, "Searching in normal mode: lead_as_string='" + << lead_as_string << "', par_as_string_nolead='" + << par_as_string_nolead << "'"); if (at_begin) { - LYXERR(Debug::FIND, "size=" << par_as_string.size() << ", substr='" << str.substr(0, par_as_string.size()) << "'"); + LYXERR(Debug::FIND, "size=" << par_as_string.size() + << ", substr='" << str.substr(0, par_as_string.size()) << "'"); if (str.substr(0, par_as_string.size()) == par_as_string) return par_as_string.size(); } else { @@ -969,20 +975,21 @@ int MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_begin) con } } else { LYXERR(Debug::FIND, "Searching in regexp mode: at_begin=" << at_begin); - // Try all possible regexp matches, - //until one that verifies the braces match test is found regex const & p_regexp = at_begin ? regexp : regexp2; sregex_iterator re_it(str.begin(), str.end(), p_regexp); match_results const & m = *re_it; + // Check braces on the segment that matched the entire regexp expression, // plus the last subexpression, if a (.*?) was inserted in the constructor. if (!braces_match(m[0].first, m[0].second, open_braces)) return 0; + // Check braces on segments that matched all (.*?) subexpressions, // except the last "padding" one inserted by lyx. for (size_t i = 1; i < m.size() - 1; ++i) if (!braces_match(m[i].first, m[i].second)) return false; + // Exclude from the returned match length any length // due to close wildcards added at end of regexp if (close_wildcards == 0)