1 /* Definitions for keyboard macro interpretation in GNU Emacs. 2 Copyright (C) 1985, 2001-2023 Free Software Foundation, Inc. 3 4 This file is part of GNU Emacs. 5 6 GNU Emacs is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or (at 9 your option) any later version. 10 11 GNU Emacs is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ 18 19 #ifndef EMACS_MACROS_H 20 #define EMACS_MACROS_H 21 22 #include "lisp.h" 23 24 /* Number of successful iterations so far 25 for innermost keyboard macro. 26 This is not bound at each level, 27 so after an error, it describes the innermost interrupted macro. */ 28 29 extern EMACS_INT executing_kbd_macro_iterations; 30 31 /* This is the macro that was executing. 32 This is not bound at each level, 33 so after an error, it describes the innermost interrupted macro. */ 34 35 extern Lisp_Object executing_kbd_macro; 36 37 /* Finish defining the current keyboard macro. */ 38 39 extern void end_kbd_macro (void); 40 41 /* Declare that all chars stored so far in the kbd macro being defined 42 really belong to it. This is done in between editor commands. */ 43 44 extern void finalize_kbd_macro_chars (void); 45 46 /* Store a character into kbd macro being defined */ 47 48 extern void store_kbd_macro_char (Lisp_Object); 49 50 #endif /* EMACS_MACROS_H */