ends before this. This is not the same as kbd_macro_ptr, because
we advance this to kbd_macro_ptr when a key's command is complete.
This way, the keystrokes for "end-kbd-macro" are not included in the
- macro. */
+ macro. This also allows us to throw away the events added to the
+ macro by the last command: all the events between kbd_macro_end and
+ kbd_macro_ptr belong to the last command; see
+ cancel-kbd-macro-events. */
Lisp_Object *kbd_macro_end;
/* Allocated size of kbd_macro_buffer. */
/* Extract the fields of a position. */
#define POSN_WINDOW(posn) (XCAR (posn))
#define POSN_BUFFER_POSN(posn) (XCAR (XCDR (posn)))
+#define POSN_BUFFER_SET_POSN(posn,x) (XSETCAR (XCDR (posn), (x)))
#define POSN_WINDOW_POSN(posn) (XCAR (XCDR (XCDR (posn))))
#define POSN_TIMESTAMP(posn) \
(XCAR (XCDR (XCDR (XCDR (posn)))))
/* Forward declaration for prototypes. */
struct input_event;
-extern Lisp_Object get_keymap_1 P_ ((Lisp_Object, int, int));
-EXFUN (Fkeymapp, 1);
extern Lisp_Object parse_modifiers P_ ((Lisp_Object));
extern Lisp_Object reorder_modifiers P_ ((Lisp_Object));
extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, int *));
/* User-supplied string to translate input characters through. */
extern Lisp_Object Vkeyboard_translate_table;
-extern Lisp_Object map_prompt P_ ((Lisp_Object));
-
extern int parse_menu_item P_ ((Lisp_Object, int, int));