The branch, cleanup/updateMacros4, has been updated. - Log -----------------------------------------------------------------
commit 007b6f711dcdd24dc768954efa893958a41cebb7 Author: Richard Kimberly Heck <rikih...@lyx.org> Date: Tue Nov 17 01:37:09 2020 -0500 Comment diff --git a/src/Buffer.h b/src/Buffer.h index 267bf94..e7fd883 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -604,6 +604,8 @@ public: /// Collect macro definitions in paragraphs void updateMacros() const; /// Iterate through the whole buffer and try to resolve macros + /// At the moment, this is only called when we are preparing for some + /// kind of output (including to the clipboard). void updateMacroInstances(UpdateType) const; /// List macro names of this buffer, the parent and the children commit 3858c5692ea6318979db2373c982363a5363e827 Author: Richard Kimberly Heck <rikih...@lyx.org> Date: Tue Nov 17 01:21:57 2020 -0500 Renaming diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 97b837f..b5d9e4f 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -3872,7 +3872,7 @@ void Buffer::updateMacroInstances(UpdateType utype) const MacroContext mc = MacroContext(this, it); for (DocIterator::idx_type i = 0; i < n; ++i) { MathData & data = minset->cell(i); - data.updateMacros(nullptr, mc, utype, 0); + data.updateMacroInstances(nullptr, mc, utype, 0); } } } diff --git a/src/mathed/InsetMathMacro.cpp b/src/mathed/InsetMathMacro.cpp index c051c8e..ab9af5f 100644 --- a/src/mathed/InsetMathMacro.cpp +++ b/src/mathed/InsetMathMacro.cpp @@ -726,7 +726,7 @@ void InsetMathMacro::updateRepresentation(Cursor * cur, MacroContext const & mc, d->expanded_.setBuffer(buffer()); if (ret && !support::contains(display, latexname)) { if (utype == OutputUpdate && !d->expanded_.empty()) - d->expanded_.updateMacros(cur, mc, utype, nesting); + d->expanded_.updateMacroInstances(cur, mc, utype, nesting); } // get definition for list edit mode asArray(display.empty() ? d->macro_->definition() : display, diff --git a/src/mathed/MathData.cpp b/src/mathed/MathData.cpp index 2b74cac..bccd28a 100644 --- a/src/mathed/MathData.cpp +++ b/src/mathed/MathData.cpp @@ -225,7 +225,7 @@ bool MathData::addToMathRow(MathRow & mrow, MetricsInfo & mi) const bool has_contents = false; BufferView * bv = mi.base.bv; MathData * ar = const_cast<MathData*>(this); - ar->updateMacros(&bv->cursor(), mi.macrocontext, + ar->updateMacroInstances(&bv->cursor(), mi.macrocontext, InternalUpdate, mi.base.macro_nesting); @@ -398,7 +398,7 @@ void MathData::updateBuffer(ParIterator const & it, UpdateType utype, bool const } -void MathData::updateMacros(Cursor * cur, MacroContext const & mc, +void MathData::updateMacroInstances(Cursor * cur, MacroContext const & mc, UpdateType utype, int nesting) { // If we are editing a macro, we cannot update it immediately, diff --git a/src/mathed/MathData.h b/src/mathed/MathData.h index 3474980..199039d 100644 --- a/src/mathed/MathData.h +++ b/src/mathed/MathData.h @@ -178,7 +178,7 @@ public: /// attach/detach arguments to macros, updating the cur to /// stay visually at the same position (cur==0 is allowed) - void updateMacros(Cursor * cur, MacroContext const & mc, UpdateType, int nesting); + void updateMacroInstances(Cursor * cur, MacroContext const & mc, UpdateType, int nesting); /// void updateBuffer(ParIterator const &, UpdateType, bool const deleted = false); /// commit fffaf64ee3a512867550da7aba302f784ad393e3 Author: Richard Kimberly Heck <rikih...@lyx.org> Date: Tue Nov 17 01:15:45 2020 -0500 nullptr diff --git a/src/mathed/MathData.cpp b/src/mathed/MathData.cpp index 39d5f80..2b74cac 100644 --- a/src/mathed/MathData.cpp +++ b/src/mathed/MathData.cpp @@ -403,8 +403,8 @@ void MathData::updateMacros(Cursor * cur, MacroContext const & mc, { // If we are editing a macro, we cannot update it immediately, // otherwise wrong undo steps will be recorded (bug 6208). - InsetMath const * inmath = cur ? cur->inset().asInsetMath() : 0; - InsetMathMacro const * inmacro = inmath ? inmath->asMacro() : 0; + InsetMath const * inmath = cur ? cur->inset().asInsetMath() : nullptr; + InsetMathMacro const * inmacro = inmath ? inmath->asMacro() : nullptr; docstring const edited_name = inmacro ? inmacro->name() : docstring(); // go over the array and look for macros @@ -533,7 +533,7 @@ void MathData::detachMacroParameters(DocIterator * cur, const size_type macroPos size_t j = 0; // We do not want to use macroInset below, the insert() call in // the loop will invalidate it. - macroInset = 0; + macroInset = nullptr; for (; j < detachedArgs.size() && j < optionals; ++j) { // another non-empty parameter follows? bool canDropEmptyOptional = j >= lastNonEmptyOptional; @@ -551,7 +551,7 @@ void MathData::detachMacroParameters(DocIterator * cur, const size_type macroPos MathData & arg = detachedArgs[j]; // look for "]", i.e. put a brace around? - InsetMathBrace * brace = 0; + InsetMathBrace * brace = nullptr; for (size_t q = 0; q < arg.size(); ++q) { if (arg[q]->getChar() == ']') { // put brace @@ -708,7 +708,7 @@ void MathData::collectOptionalParameters(Cursor * cur, size_t & pos, MathAtom & scriptToPutAround, const pos_type macroPos, const int thisPos, const int thisSlice) { - Buffer * buf = cur ? cur->buffer() : 0; + Buffer * buf = cur ? cur->buffer() : nullptr; // insert optional arguments? while (params.size() < numOptionalParams && pos < size() commit 05f950bc39fcb80ffd5396b8a02a83dfec450a24 Author: Richard Kimberly Heck <rikih...@lyx.org> Date: Tue Nov 17 01:08:35 2020 -0500 Move dump code to after we are done diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 30f04d8..97b837f 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -3792,6 +3792,21 @@ void Buffer::updateMacros() const { if (d->macro_lock) return; + + // start with empty table + d->macro_table.clear(); + d->children_positions.clear(); + d->position_to_children.clear(); + + // Iterate over buffer, starting with first paragraph + // The scope must be bigger than any lookup DocIterator + // later. For the global lookup, lastpit+1 is used, hence + // we use lastpit+2 here. + DocIterator it = par_iterator_begin(); + DocIterator outerScope = it; + outerScope.pit() = outerScope.lastpit() + 2; + inset().updateMacros(it, outerScope); + #if 0 LYXERR0("Starting macro dump"); for (auto const & m : d->macros) { @@ -3807,20 +3822,6 @@ void Buffer::updateMacros() const LYXERR0(""); LYXERR(Debug::MACROS, "updateMacro of " << d->filename.onlyFileName()); #endif - - // start with empty table - d->macro_table.clear(); - d->children_positions.clear(); - d->position_to_children.clear(); - - // Iterate over buffer, starting with first paragraph - // The scope must be bigger than any lookup DocIterator - // later. For the global lookup, lastpit+1 is used, hence - // we use lastpit+2 here. - DocIterator it = par_iterator_begin(); - DocIterator outerScope = it; - outerScope.pit() = outerScope.lastpit() + 2; - inset().updateMacros(it, outerScope); } ----------------------------------------------------------------------- Summary of changes: src/Buffer.cpp | 31 ++++++++++++++++--------------- src/Buffer.h | 2 ++ src/mathed/InsetMathMacro.cpp | 2 +- src/mathed/MathData.cpp | 14 +++++++------- src/mathed/MathData.h | 2 +- 5 files changed, 27 insertions(+), 24 deletions(-) hooks/post-receive -- Repository for new features -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs