commit a26e75cd8adc26105fab175f88d646fd19cbd595
Author: Enrico Forestieri <[email protected]>
Date: Fri Sep 16 00:43:04 2016 +0200
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 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/Cursor.cpp b/src/Cursor.cpp
index 27c9cd6..6485fc4 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