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

Reply via email to