-template<class F>
-void fixMacroInstancesFunctional(Cursor const & from,
- docstring const & name, F & fix) {
- Cursor dit = from;
-
- for (; dit; dit.forwardPos()) {
- // only until a macro is redefined
- if (dit.inset().lyxCode() == MATHMACRO_CODE) {
- MathMacroTemplate const & macroTemplate
- = static_cast<MathMacroTemplate const &>(dit.inset());
- if (macroTemplate.name() == name)
- break;
- }
-
- // in front of macro instance?
- Inset * inset = dit.nextInset();
- if (!inset)
- continue;
- InsetMath * insetMath = inset->asInsetMath();
- if (!insetMath)
- continue;
- MathMacro * macro = insetMath->asMacro();
- if (macro && macro->name() == name && macro->folded())
- F(macro);
+void MathMacroTemplate::commitEditChanges(Cursor & cur,
+ DocIterator const & inset_pos)
+{
+ int args_in_def = maxArgumentInDefinition();
+ if (args_in_def != numargs_) {
+ cur.recordUndoFullDocument();
+ changeArity(cur, inset_pos, args_in_def);