comparison src/macros.c @ 444:576fb035e263 r21-2-37

Import from CVS: tag r21-2-37
author cvs
date Mon, 13 Aug 2007 11:36:19 +0200
parents 3ecd8885ac67
children 183866b06e0b
comparison
equal deleted inserted replaced
443:a8296e22da4e 444:576fb035e263
255 DEFUN ("execute-kbd-macro", Fexecute_kbd_macro, 1, 2, 0, /* 255 DEFUN ("execute-kbd-macro", Fexecute_kbd_macro, 1, 2, 0, /*
256 Execute MACRO as string of editor command characters. 256 Execute MACRO as string of editor command characters.
257 If MACRO is a symbol, its function definition is used. 257 If MACRO is a symbol, its function definition is used.
258 COUNT is a repeat count, or nil for once, or 0 for infinite loop. 258 COUNT is a repeat count, or nil for once, or 0 for infinite loop.
259 */ 259 */
260 (macro, prefixarg)) 260 (macro, count))
261 { 261 {
262 /* This function can GC */ 262 /* This function can GC */
263 Lisp_Object final; 263 Lisp_Object final;
264 Lisp_Object tem; 264 Lisp_Object tem;
265 int speccount = specpdl_depth (); 265 int speccount = specpdl_depth ();
266 int repeat = 1; 266 int repeat = 1;
267 struct gcpro gcpro1; 267 struct gcpro gcpro1;
268 struct console *con = XCONSOLE (Vselected_console); 268 struct console *con = XCONSOLE (Vselected_console);
269 269
270 if (!NILP (prefixarg)) 270 if (!NILP (count))
271 { 271 {
272 prefixarg = Fprefix_numeric_value (prefixarg); 272 count = Fprefix_numeric_value (count);
273 repeat = XINT (prefixarg); 273 repeat = XINT (count);
274 } 274 }
275 275
276 final = indirect_function (macro, 1); 276 final = indirect_function (macro, 1);
277 if (!STRINGP (final) && !VECTORP (final)) 277 if (!STRINGP (final) && !VECTORP (final))
278 error ("Keyboard macros must be strings or vectors"); 278 error ("Keyboard macros must be strings or vectors");