/* Keyboard macros.
- Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993 Free Software Foundation, Inc.
This file is part of GNU Emacs.
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-#include "config.h"
+#include <config.h>
#include "lisp.h"
#include "macros.h"
#include "commands.h"
{
defining_kbd_macro = 0;
update_mode_lines++;
- Vlast_kbd_macro = make_array (kbd_macro_end - kbd_macro_buffer,
- kbd_macro_buffer);
+ Vlast_kbd_macro = make_event_array (kbd_macro_end - kbd_macro_buffer,
+ kbd_macro_buffer);
message("Keyboard macro defined");
}
Fexecute_kbd_macro (Vlast_kbd_macro, arg);
else
{
- XFASTINT (arg)--;
- if (XFASTINT (arg) > 0)
+ XSETINT (arg, XINT (arg)-1);
+ if (XINT (arg) > 0)
Fexecute_kbd_macro (Vlast_kbd_macro, arg);
}
return Qnil;
executing_macro_index = 0;
command_loop_1 ();
+
+ QUIT;
}
while (--repeat && (XTYPE (Vexecuting_macro) == Lisp_String
|| XTYPE (Vexecuting_macro) == Lisp_Vector));