commands that set the prefix argument. */
Lisp_Object Vlast_command;
+ /* Normally same as last-command, but never modified by
+ other commands. */
+ Lisp_Object Vreal_last_command;
+
/* The prefix argument for the next command, in raw form. */
Lisp_Object Vprefix_arg;
+ /* Saved prefix argument for the last command, in raw form. */
+ Lisp_Object Vlast_prefix_arg;
+
/* Unread events specific to this kboard. */
Lisp_Object kbd_queue;
/* Extract the head from an event.
This works on composite and simple events. */
#define EVENT_HEAD(event) \
- (EVENT_HAS_PARAMETERS (event) ? XCONS (event)->car : (event))
+ (EVENT_HAS_PARAMETERS (event) ? XCAR (event) : (event))
/* Extract the starting and ending positions from a composite event. */
-#define EVENT_START(event) (XCONS (XCONS (event)->cdr)->car)
-#define EVENT_END(event) (XCONS (XCONS (XCONS (event)->cdr)->cdr)->car)
+#define EVENT_START(event) (XCAR (XCDR (event)))
+#define EVENT_END(event) (XCAR (XCDR (XCDR (event))))
/* Extract the click count from a multi-click event. */
#define EVENT_CLICK_COUNT(event) (Fnth ((event), make_number (2)))
/* Extract the fields of a position. */
-#define POSN_WINDOW(posn) (XCONS (posn)->car)
-#define POSN_BUFFER_POSN(posn) (XCONS (XCONS (posn)->cdr)->car)
-#define POSN_WINDOW_POSN(posn) (XCONS (XCONS (XCONS (posn)->cdr)->cdr)->car)
+#define POSN_WINDOW(posn) (XCAR (posn))
+#define POSN_BUFFER_POSN(posn) (XCAR (XCDR (posn)))
+#define POSN_WINDOW_POSN(posn) (XCAR (XCDR (XCDR (posn))))
#define POSN_TIMESTAMP(posn) \
- (XCONS (XCONS (XCONS (XCONS (posn)->cdr)->cdr)->cdr)->car)
+ (XCAR (XCDR (XCDR (XCDR (posn)))))
#define POSN_SCROLLBAR_PART(posn) (Fnth ((posn), make_number (4)))
+/* A cons (STRING . STRING-CHARPOS), or nil in mouse-click events.
+ It's a cons if the click is over a string in the mode line. */
+
+#define POSN_STRING(POSN) Fnth (make_number (4), (POSN))
+
/* Some of the event heads. */
extern Lisp_Object Qswitch_frame;
(Fget ((event_head), Qevent_kind))
/* Symbols to use for non-text mouse positions. */
-extern Lisp_Object Qmode_line, Qvertical_line;
+extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line;
/* 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. */