negative; XFASTINT only works on values known to be positive.
(Fexecute_kbd_macro): Check QUIT in the repetition loop. If the
macro is null, no characters are actually being read, so this
matters.
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));