commit 1ac2dc208238a28c95275117e2bc90ea651bdf36 Author: Enrico Forestieri <for...@lyx.org> Date: Mon Nov 21 18:24:29 2022 +0100
Do not allow nesting macro names in macro names LyX removes a single backslash when it is inserted in a macro name by the keyboard. However if it is followed by another character before moving the cursor, it is retained causing an assertion (bug #12601). --- src/mathed/InsetMathNest.cpp | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp index 70ef185..673a62d 100644 --- a/src/mathed/InsetMathNest.cpp +++ b/src/mathed/InsetMathNest.cpp @@ -1825,9 +1825,15 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c) //lyxerr << "starting with macro" << endl; bool reduced = cap::reduceSelectionToOneCell(cur); if (reduced || !cur.selection()) { + InsetMath const * im = cur.inset().asInsetMath(); + InsetMathMacro const * macro = im ? im->asMacro() + : nullptr; + bool in_macro_name = macro + && macro->displayMode() == + InsetMathMacro::DISPLAY_UNFOLDED; cur.recordUndoInset(); docstring const safe = cap::grabAndEraseSelection(cur); - if (!cur.inRegexped()) + if (!cur.inRegexped() && !in_macro_name) cur.insert(MathAtom(new InsetMathUnknown(from_ascii("\\"), safe, false))); else cur.niceInsert(createInsetMath("backslash", buf)); -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs