int InsetQuotes::plaintext(odocstringstream & os,
- OutputParams const &, size_t) const
+ OutputParams const & op, size_t) const
{
- docstring const str = displayString();
- os << str;
- return str.size();
+ if (op.for_searchAdv == OutputParams::NoSearch) {
+ docstring const str = displayString();
+ os << str;
+ return str.size();
+ }
+ else {
+ if (level_ == QuoteLevel::Primary)
+ os << from_ascii("\"");
+ else
+ os << from_ascii("'");
+ return 1;
+ }
}
lastpos = sub.position(2) + sub.length(2);
}
if (lastpos == 0)
- return t;
+ s = t;
else if (lastpos < t.length())
s += t.substr(lastpos, t.length() - lastpos);
+ // Handle quotes in regex
+ // substitute all '„', '“' with '"'
+ // and all '‚', '‘' with "\'"
+ static std::regex plainquotes { R"(„|“)" };
+ static std::regex innerquotes { R"(‚|‘)" };
+ t = std::regex_replace(s, plainquotes, R"(")");
+ s = std::regex_replace(t, innerquotes, R"(')");
//LYXERR0("correctRegex output '" << s << "'");
return s;
}