commit 4bb427a2443d64bd01aad66ebdc0b3f802546bae
Author: Kornel Benko <[email protected]>
Date: Sun May 8 14:30:45 2022 +0200
FindAdv: Amend 627cd6de: Use '~' instead of "\\ " for search if possible
Also fix a thinko in interpreting the found values.
The match_len describes the length of the second regex field,
while matchend is the length of the search field 0.
---
src/insets/InsetSpace.cpp | 5 ++++-
src/lyxfind.cpp | 11 +++++------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp
index 92d4c43..669239b 100644
--- a/src/insets/InsetSpace.cpp
+++ b/src/insets/InsetSpace.cpp
@@ -579,7 +579,10 @@ void InsetSpace::latex(otexstream & os, OutputParams const
& runparams) const
{
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
- os << (runparams.free_spacing && (runparams.for_search ==
OutputParams::NoSearch) ? " " : "\\ ");
+ if (runparams.for_search != OutputParams::NoSearch)
+ os << "~";
+ else
+ os << (runparams.free_spacing ? " " : "\\ ");
break;
case InsetSpaceParams::PROTECTED:
if (runparams.local_font &&
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 83ccb23..669742e 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -831,10 +831,6 @@ string string2regex(string in)
blanks++;
i++;
}
- else if (tempx[i] == '\\' && tempx[i+1] == '\\' && tempx[i+2]
== ' ') {
- blanks++;
- i += 2;
- }
else {
if (blanks > 0) {
temp += "\\s+";
@@ -3740,6 +3736,9 @@ MatchResult MatchStringAdv::findAux(DocIterator const &
cur, int len, bool at_be
if (lng != str.size()) {
str = str.substr(0, lng);
}
+ // Replace occurences of '~' to ' '
+ static std::regex specialChars { R"(~)" };
+ str = std::regex_replace(str, specialChars, R"( )" );
}
if (str.empty()) {
mres.match_len = -1;
@@ -3808,7 +3807,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const &
cur, int len, bool at_be
while (mres.match_len > 0) {
QChar c = qstr.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
- mres.match_len--;
+ // mres.match_len--;
matchend--;
}
else
@@ -3837,7 +3836,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const &
cur, int len, bool at_be
while (mres.match_len > 0) {
char c = str.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
- mres.match_len--;
+ // mres.match_len--;
matchend--;
}
else
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs