diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/macros.c | 6 | 
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)); | 
