Function: end-kbd-macro

end-kbd-macro is an interactive function defined in macros.c.

Signature

(end-kbd-macro &optional REPEAT LOOPFUNC)

Documentation

Finish defining a keyboard macro.

The definition was started by M-x start-kbd-macro (start-kbd-macro). The macro is now available for use via M-x call-last-kbd-macro (call-last-kbd-macro), or it can be given a name with M-x name-last-kbd-macro (name-last-kbd-macro) and then invoked under that name.

With numeric arg, repeat macro now that many times, counting the definition just completed as the first repetition. An argument of zero means repeat until error.

In Lisp, optional second arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil.

Key Bindings

Source Code

// Defined in /usr/src/emacs/src/macros.c
{
  if (NILP (KVAR (current_kboard, defining_kbd_macro)))
    error ("Not defining kbd macro");

  if (NILP (repeat))
    XSETFASTINT (repeat, 1);
  else
    CHECK_FIXNUM (repeat);

  if (!NILP (KVAR (current_kboard, defining_kbd_macro)))
    {
      end_kbd_macro ();
      message1 ("Keyboard macro defined");
    }

  if (XFIXNAT (repeat) == 0)
    Fexecute_kbd_macro (KVAR (current_kboard, Vlast_kbd_macro), repeat, loopfunc);
  else if (XFIXNUM (repeat) > 1)
    {
      XSETINT (repeat, XFIXNUM (repeat) - 1);
      Fexecute_kbd_macro (KVAR (current_kboard, Vlast_kbd_macro),
			  repeat, loopfunc);
    }
  return Qnil;
}