Commit e86f81cc authored by Jim Blandy's avatar Jim Blandy
Browse files

* macros.c (Fend_kbd_macro): Don't use XFASTINT to check if arg is

	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.
parent 997bf68d
......@@ -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));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment