summaryrefslogtreecommitdiff
path: root/src/macros.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/macros.c')
-rw-r--r--src/macros.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/macros.c b/src/macros.c
index 64e91776f67..194219bb1f0 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -115,8 +115,8 @@ An argument of zero means repeat until error.")
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;
@@ -217,6 +217,8 @@ COUNT is a repeat count, or nil for once, or 0 for infinite loop.")
executing_macro_index = 0;
command_loop_1 ();
+
+ QUIT;
}
while (--repeat && (XTYPE (Vexecuting_macro) == Lisp_String
|| XTYPE (Vexecuting_macro) == Lisp_Vector));