aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/macros.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/macros.c b/src/macros.c
index 540792edae3..6ed3a862865 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -202,8 +202,7 @@ COUNT is a repeat count, or nil for once, or 0 for infinite loop.")
202 repeat = XINT (prefixarg); 202 repeat = XINT (prefixarg);
203 203
204 final = indirect_function (macro); 204 final = indirect_function (macro);
205 if (XTYPE (final) != Lisp_String 205 if (!STRINGP (final) && !VECTORP (final))
206 && XTYPE (final) != Lisp_Vector)
207 error ("Keyboard macros must be strings or vectors."); 206 error ("Keyboard macros must be strings or vectors.");
208 207
209 XFASTINT (tem) = executing_macro_index; 208 XFASTINT (tem) = executing_macro_index;
@@ -220,8 +219,8 @@ COUNT is a repeat count, or nil for once, or 0 for infinite loop.")
220 219
221 QUIT; 220 QUIT;
222 } 221 }
223 while (--repeat && (XTYPE (Vexecuting_macro) == Lisp_String 222 while (--repeat
224 || XTYPE (Vexecuting_macro) == Lisp_Vector)); 223 && (STRINGP (Vexecuting_macro) || VECTORP (Vexecuting_macro)));
225 224
226 UNGCPRO; 225 UNGCPRO;
227 return unbind_to (count, Qnil); 226 return unbind_to (count, Qnil);