commit fd4a817f908d00088fed4843da3d896c302f5743
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Sun Mar 16 21:10:04 2025 +0100

    Fixup 724ca831: use a LaTeXFeature member instead of a static variable
    
    Also avoid guarding the validation of the parameters of the macro.
    
    Related to bug #12633.
---
 src/LaTeXFeatures.h           | 4 ++++
 src/mathed/InsetMathMacro.cpp | 9 +++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/LaTeXFeatures.h b/src/LaTeXFeatures.h
index af1c1cfded..df0f4f3572 100644
--- a/src/LaTeXFeatures.h
+++ b/src/LaTeXFeatures.h
@@ -187,6 +187,8 @@ public:
        docstring const & htmlTitle() const { return htmltitle_; }
        ///
        bool hasRTLLanguage() const;
+       /// This is used to avoid recursion in InsetMathMacro::validate
+       std::set<docstring> & activeMacros() { return active_macros_; }
 
 private:
        ///
@@ -241,6 +243,8 @@ private:
        docstring htmltitle_;
        ///
        std::string savenote_env_;
+       /// This is used to avoid recursion in InsetMathMacro::validate
+       std::set<docstring> active_macros_;
 };
 
 
diff --git a/src/mathed/InsetMathMacro.cpp b/src/mathed/InsetMathMacro.cpp
index 6e209a0e5f..3318799d09 100644
--- a/src/mathed/InsetMathMacro.cpp
+++ b/src/mathed/InsetMathMacro.cpp
@@ -957,12 +957,9 @@ MacroData const * InsetMathMacro::macroBackup() const
 void InsetMathMacro::validate(LaTeXFeatures & features) const
 {
        // Protect against recursive macros
-       static set<docstring> active_macros;
-       if (active_macros.count(name())) {
-               LYXERR0("Recursive nesting for "  << name());
+       if (features.activeMacros().count(name()))
                return;
-       }
-       active_macros.insert(name());
+       features.activeMacros().insert(name());
 
        // Immediately after a document is loaded, in some cases the MacroData
        // of the global macros defined in the lib/symbols file may still not
@@ -1000,8 +997,8 @@ void InsetMathMacro::validate(LaTeXFeatures & features) 
const
                        }
                }
        }
+       features.activeMacros().erase(name());
        InsetMathNest::validate(features);
-       active_macros.erase(name());
 }
 
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to