Mercurial > emacs
comparison src/macros.c @ 9122:9ba3f17d6631
(Fexecute_kbd_macro): Use type test macros.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Tue, 27 Sep 1994 02:25:20 +0000 |
parents | 1fc792473491 |
children | 2c681685646b |
comparison
equal
deleted
inserted
replaced
9121:faecbbbcceb4 | 9122:9ba3f17d6631 |
---|---|
200 if (!NILP (prefixarg)) | 200 if (!NILP (prefixarg)) |
201 prefixarg = Fprefix_numeric_value (prefixarg), | 201 prefixarg = Fprefix_numeric_value (prefixarg), |
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; |
210 tem = Fcons (Vexecuting_macro, tem); | 209 tem = Fcons (Vexecuting_macro, tem); |
211 record_unwind_protect (pop_kbd_macro, tem); | 210 record_unwind_protect (pop_kbd_macro, tem); |
218 | 217 |
219 command_loop_1 (); | 218 command_loop_1 (); |
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); |
228 } | 227 } |
229 | 228 |