* 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.
This commit is contained in:
parent
997bf68d0a
commit
e86f81cc46
1 changed files with 4 additions and 2 deletions
|
@ -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));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue