/* Keyboard macros.
Copyright (C) 1985, 1986, 1993, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006 Free Software Foundation, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
+along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
+#include <setjmp.h>
#include "lisp.h"
#include "macros.h"
#include "commands.h"
int cvt;
/* Check the type of last-kbd-macro in case Lisp code changed it. */
- if (!STRINGP (current_kboard->Vlast_kbd_macro)
- && !VECTORP (current_kboard->Vlast_kbd_macro))
- current_kboard->Vlast_kbd_macro
- = wrong_type_argument (Qarrayp, current_kboard->Vlast_kbd_macro);
+ CHECK_VECTOR_OR_STRING (current_kboard->Vlast_kbd_macro);
len = XINT (Flength (current_kboard->Vlast_kbd_macro));
void
syms_of_macros ()
{
- Qexecute_kbd_macro = intern ("execute-kbd-macro");
+ Qexecute_kbd_macro = intern_c_string ("execute-kbd-macro");
staticpro (&Qexecute_kbd_macro);
- Qkbd_macro_termination_hook = intern ("kbd-macro-termination-hook");
+ Qkbd_macro_termination_hook = intern_c_string ("kbd-macro-termination-hook");
staticpro (&Qkbd_macro_termination_hook);
defsubr (&Sstart_kbd_macro);