Fix bug #8105: Crash when deleting math macro from the inside

It seems that parameterless macros are not wrapped into a MathAtom.
Rather than touching the macro code (which is tantamount to opening
a can of worms, IMHO), I prefer this solution.

(cherry picked from commit d07f9eec20)
This commit is contained in:
Enrico Forestieri 2012-04-12 16:25:38 +02:00
parent 3536bb52db
commit fe47997587
2 changed files with 8 additions and 3 deletions

View File

@ -23,7 +23,7 @@
#include "insets/Inset.h"
#include "mathed/InsetMath.h"
#include "mathed/MathData.h"
#include "mathed/MathMacro.h"
#include "support/lassert.h"
@ -61,8 +61,10 @@ Paragraph & CursorSlice::paragraph() const
pos_type CursorSlice::lastpos() const
{
LASSERT(inset_, /**/);
return inset_->asInsetMath() ? cell().size()
: (text()->empty() ? 0 : paragraph().size());
InsetMath const * math = inset_->asInsetMath();
bool paramless_macro = math && math->asMacro() && !math->asMacro()->nargs();
return math ? (paramless_macro ? 0 : cell().size())
: (text()->empty() ? 0 : paragraph().size());
}

View File

@ -89,6 +89,9 @@ What's new
flag by using the same latex backend used for previewing the document
instead of always using the plain latex backend.
- Fix crash when dissolving a math macro whose first argument is another
parameterless macro (bug 8105).
* USER INTERFACE