Am Fri, 22 Jan 2021 11:02:05 -0500 schrieb Richard Kimberly Heck <[email protected]>:
> On 1/22/21 10:26 AM, Jürgen Spitzmüller wrote:
> > Am Freitag, dem 22.01.2021 um 14:04 +0100 schrieb Kornel Benko:
> >> As the subject says.
> >>
> >> ATM it is the case, but I'd like to change it.
> >> (see output_latex.cpp:447,762,1668,1677)
> > I think deleted material should be ignored, as in simple search
> > (nowadays).
>
> How hard is it to add a checkbox to allow both? I can well imagine both
> would be useful.
>
> Riki
>
>
FWIW, here the patch to search in deleted text. (I too think, a checkbox would
be nice.)
Kornel
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index d5bfb76320..38fe2a7b35 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -2515,10 +2515,11 @@ void Paragraph::latex(BufferParams const & bparams,
? runparams.changeOfDeletedInset : lookupChange(i);
char_type const c = d->text_[i];
// Check whether a display math inset follows
+ bool output_changes = bparams.output_changes || runparams.for_search;
if (c == META_INSET
&& i >= start_pos && (end_pos == -1 || i < end_pos)) {
if (isDeleted(i))
runparams.ctObject = getInset(i)->getCtObject(runparams);
@@ -2530,11 +2531,11 @@ void Paragraph::latex(BufferParams const & bparams,
// latexInset later, but we need this info
// before it is called. On the other hand, we
// cannot set it here because it is a counter.
deleted_display_math = isDeleted(i);
}
- if (bparams.output_changes && deleted_display_math
+ if (output_changes && deleted_display_math
&& runningChange == change
&& change.type == Change::DELETED
&& !os.afterParbreak()) {
// A display math in the same paragraph follows.
// We have to close and then reopen \lyxdeleted,
@@ -2553,11 +2554,11 @@ void Paragraph::latex(BufferParams const & bparams,
column += Changes::latexMarkChange(os, bparams,
Change(Change::INSERTED), change, rp);
}
}
- if (bparams.output_changes && runningChange != change) {
+ if (output_changes && runningChange != change) {
if (!alien_script.empty()) {
column += 1;
os << "}";
alien_script.clear();
}
@@ -2576,11 +2577,11 @@ void Paragraph::latex(BufferParams const & bparams,
runningChange = change;
}
// do not output text which is marked deleted
// if change tracking output is disabled
- if (!bparams.output_changes && change.deleted()) {
+ if (!output_changes && change.deleted()) {
continue;
}
++column;
@@ -2590,11 +2591,11 @@ void Paragraph::latex(BufferParams const & bparams,
Font const prev_font = (i > 0) ?
getFont(bparams, i - 1, outerfont)
: current_font;
Font const last_font = running_font;
- bool const in_ct_deletion = (bparams.output_changes
+ bool const in_ct_deletion = (output_changes
&& runningChange == change
&& change.type == Change::DELETED
&& !os.afterParbreak());
// Insets where font switches are used (rather than font commands)
bool const fontswitch_inset =
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index be529ca19a..463faa2998 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -922,15 +922,15 @@ static docstring stringifySearchBuffer(Buffer & buffer, FindAndReplaceOptions co
runparams.for_search = true;
for (pos_type pit = pos_type(0); pit < (pos_type)buffer.paragraphs().size(); ++pit) {
Paragraph const & par = buffer.paragraphs().at(pit);
LYXERR(Debug::FIND, "Adding to search string: '"
<< par.asString(pos_type(0), par.size(),
- AS_STR_INSETS | AS_STR_SKIPDELETE | AS_STR_PLAINTEXT,
+ AS_STR_INSETS | AS_STR_PLAINTEXT,
&runparams)
<< "'");
str += par.asString(pos_type(0), par.size(),
- AS_STR_INSETS | AS_STR_SKIPDELETE | AS_STR_PLAINTEXT,
+ AS_STR_INSETS | AS_STR_PLAINTEXT,
&runparams);
}
// Even in ignore-format we have to remove "\text{}, \lyxmathsym{}" parts
string t = to_utf8(str);
while (regex_replace(t, t, "\\\\(text|lyxmathsym)\\{([^\\}]*)\\}", "$2"));
@@ -3312,11 +3312,11 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
runparams.dryrun = true;
runparams.for_search = true;
LYXERR(Debug::FIND, "Stringifying with cur: "
<< cur << ", from pos: " << cur.pos() << ", end: " << end);
return par.asString(cur.pos(), end,
- AS_STR_INSETS | AS_STR_SKIPDELETE | AS_STR_PLAINTEXT,
+ AS_STR_INSETS | AS_STR_PLAINTEXT,
&runparams);
} else if (cur.inMathed()) {
CursorSlice cs = cur.top();
MathData md = cs.cell();
MathData::const_iterator it_end =
diff --git a/src/output_latex.cpp b/src/output_latex.cpp
index 2f5d964a47..fe50442064 100644
--- a/src/output_latex.cpp
+++ b/src/output_latex.cpp
@@ -442,11 +442,11 @@ void TeXEnvironment(Buffer const & buf, Text const & text,
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
Paragraph const & cpar = paragraphs.at(pit);
if ((par->layout() != nextpar->layout()
|| par->params().depth() == nextpar->params().depth()
|| par->params().leftIndent() == nextpar->params().leftIndent())
- && !cpar.empty()
+ && !runparams.for_search && !cpar.empty()
&& cpar.isDeleted(0, cpar.size()) && !buf.params().output_changes) {
if (!buf.params().output_changes && !cpar.parEndChange().deleted())
os << '\n' << '\n';
continue;
}
@@ -757,11 +757,11 @@ void TeXOnePar(Buffer const & buf,
if (style.inpreamble && !force)
return;
// Do not output empty commands if the whole paragraph has
// been deleted with ct and changes are not output.
- if (style.latextype != LATEX_ENVIRONMENT
+ if (!runparams_in.for_search && style.latextype != LATEX_ENVIRONMENT
&& !par.empty() && par.isDeleted(0, par.size()) && !bparams.output_changes)
return;
LYXERR(Debug::LATEX, "TeXOnePar for paragraph " << pit << " ptr " << &par << " '"
<< everypar << "'");
@@ -1663,20 +1663,20 @@ void latexParagraphs(Buffer const & buf,
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
Paragraph const & cpar = paragraphs.at(pit);
if ((par->layout() != nextpar->layout()
|| par->params().depth() == nextpar->params().depth()
|| par->params().leftIndent() == nextpar->params().leftIndent())
- && !cpar.empty()
+ && !runparams.for_search && !cpar.empty()
&& cpar.isDeleted(0, cpar.size()) && !bparams.output_changes) {
if (!cpar.parEndChange().deleted())
os << '\n' << '\n';
continue;
}
} else {
// This is the last par
Paragraph const & cpar = paragraphs.at(pit);
- if (!cpar.empty()
+ if (!runparams.for_search && !cpar.empty()
&& cpar.isDeleted(0, cpar.size()) && !bparams.output_changes) {
if (!cpar.parEndChange().deleted())
os << '\n' << '\n';
continue;
}
pgplT5lvTgVne.pgp
Description: Digitale Signatur von OpenPGP
-- lyx-devel mailing list [email protected] http://lists.lyx.org/mailman/listinfo/lyx-devel
