mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 19:25:39 +00:00
FindAdv: If possible use unicode instead of math command when searching
Wrong behaviour before this commit: Open new lyx-file insert unicode-insert 0x025c 0x1d08 Open adv-find dialog search for unicode 0x025c OK search for unicode 0x1d08 OK search with regex for unicode 0x025c OK search with regex for unicode 0x1d08 ==> NOT OK (because we are searching for \textrevepsilon and this was mapped to 0x025c
This commit is contained in:
parent
32de59d84a
commit
e6d998d33c
@ -917,7 +917,7 @@ string escape_for_regex(string s, bool withformat)
|
||||
if (lastpos == s.size())
|
||||
break;
|
||||
}
|
||||
size_t end_pos = s.find("\\endregexp{}}", regex_pos + 8);
|
||||
size_t end_pos = s.find("\\endregexp{", regex_pos + 8);
|
||||
result += correctRegex(s.substr(regex_pos + 8, end_pos -(regex_pos + 8)), withformat);
|
||||
lastpos = end_pos + 13;
|
||||
}
|
||||
@ -3519,6 +3519,7 @@ MatchStringAdv::MatchStringAdv(lyx::Buffer & buf, FindAndReplaceOptions & opt)
|
||||
string lead_as_regexp;
|
||||
if (lead_size > 0) {
|
||||
lead_as_regexp = string2regex(par_as_string.substr(0, lead_size));
|
||||
(void)regex_replace(par_as_string_nolead, par_as_string_nolead, "\\$$", "");
|
||||
(void)regex_replace(par_as_string_nolead, par_as_string_nolead, "}$", "");
|
||||
par_as_string = par_as_string_nolead;
|
||||
LYXERR(Debug::FIND, "lead_as_regexp is '" << lead_as_regexp << "'");
|
||||
|
@ -2357,12 +2357,19 @@ int InsetMathHull::plaintext(odocstringstream & os,
|
||||
odocstringstream oss;
|
||||
otexrowstream ots(oss);
|
||||
Encoding const * const enc = encodings.fromLyXName("utf8");
|
||||
TeXMathStream wi(ots, false, true, TeXMathStream::wsDefault, enc);
|
||||
|
||||
TeXMathStream::OutputType ot;
|
||||
if (op.for_searchAdv == OutputParams::NoSearch)
|
||||
ot = TeXMathStream::wsDefault;
|
||||
else
|
||||
ot = TeXMathStream::wsSearchAdv;
|
||||
// Fix Bug #6139
|
||||
if (type_ == hullRegexp)
|
||||
if (type_ == hullRegexp) {
|
||||
TeXMathStream wi(ots, false, true, ot, enc);
|
||||
write(wi);
|
||||
}
|
||||
else {
|
||||
TeXMathStream wi(ots, false, true, ot, enc);
|
||||
for (row_type r = 0; r < nrows(); ++r) {
|
||||
for (col_type c = 0; c < ncols(); ++c)
|
||||
wi << (c == 0 ? "" : "\t") << cell(index(r, c));
|
||||
|
@ -358,8 +358,14 @@ void InsetMathNest::normalize(NormalStream & os) const
|
||||
|
||||
void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
|
||||
{
|
||||
TeXMathStream wi(os, runparams.moving_arg, true,
|
||||
runparams.dryrun ? TeXMathStream::wsDryrun : TeXMathStream::wsDefault,
|
||||
TeXMathStream::OutputType ot;
|
||||
if (runparams.for_searchAdv != OutputParams::NoSearch)
|
||||
ot = TeXMathStream::wsSearchAdv;
|
||||
else if (runparams.dryrun)
|
||||
ot = TeXMathStream::wsDryrun;
|
||||
else
|
||||
ot = TeXMathStream::wsDefault;
|
||||
TeXMathStream wi(os, runparams.moving_arg, true, ot,
|
||||
runparams.encoding);
|
||||
wi.strikeoutMath(runparams.inDeletedInset);
|
||||
if (runparams.inulemcmd) {
|
||||
|
@ -1425,6 +1425,10 @@ void writeString(docstring const & s, TeXMathStream & os)
|
||||
os << (os.asciiOnly() ? escape(s) : s);
|
||||
return;
|
||||
}
|
||||
else if (os.output() == TeXMathStream::wsSearchAdv) {
|
||||
os << s;
|
||||
return;
|
||||
}
|
||||
|
||||
if (os.lockedMode()) {
|
||||
bool space;
|
||||
|
@ -38,7 +38,8 @@ public:
|
||||
enum OutputType {
|
||||
wsDefault,
|
||||
wsDryrun,
|
||||
wsPreview
|
||||
wsPreview,
|
||||
wsSearchAdv
|
||||
};
|
||||
///
|
||||
enum UlemCmdType {
|
||||
|
Loading…
Reference in New Issue
Block a user