From a26e75cd8adc26105fab175f88d646fd19cbd595 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Fri, 16 Sep 2016 00:43:04 +0200 Subject: [PATCH] Correctly distinguish LyX macros from those defined in ERT At this time the MacroData of a macro is still uninitialized, so the macro() method always returns null. --- src/Cursor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Cursor.cpp b/src/Cursor.cpp index 27c9cd6ac9..6485fc4a56 100644 --- a/src/Cursor.cpp +++ b/src/Cursor.cpp @@ -1426,8 +1426,9 @@ bool Cursor::macroModeClose() InsetMathNest * const in = inset().asInsetMath()->asNestInset(); if (in && in->interpretString(*this, s)) return true; - MathAtom atom = buffer()->getMacro(name, *this, false) ? - MathAtom(new MathMacro(buffer(), name)) : createInsetMath(name, buffer()); + bool const ert_macro = !buffer()->getMacro(name, *this, false); + MathAtom atom = ert_macro ? createInsetMath(name, buffer()) + : MathAtom(new MathMacro(buffer(), name)); // try to put argument into macro, if we just inserted a macro bool macroArg = false; @@ -1454,7 +1455,6 @@ bool Cursor::macroModeClose() bool keep_mathmode = it != words.end() && (it->second.inset == "font" || it->second.inset == "oldfont" || it->second.inset == "mbox"); - bool ert_macro = atomAsMacro && !atomAsMacro->macro(); if (in && in->currentMode() == Inset::TEXT_MODE && atom.nucleus()->currentMode() == Inset::MATH_MODE -- 2.39.5