/* Declarations useful when processing input.
- Copyright (C) 1985, 1986, 1987, 1993, 2002, 2003, 2004,
- 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 2001, 2002, 2003, 2004,
+ 2005, 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Emacs.
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)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#include "systime.h" /* for EMACS_TIME */
+
/* Length of echobuf field in each KBOARD. */
/* Each KBOARD represents one logical input stream from which Emacs
commands that set the prefix argument. */
Lisp_Object Vlast_command;
- /* Normally same as last-command, but never modified by
- other commands. */
+ /* Normally same as last-command, but never modified by other commands. */
Lisp_Object Vreal_last_command;
/* User-supplied table to translate input characters through. */
Lisp_Object Vkeyboard_translate_table;
+ /* Last command that may be repeated by `repeat'. */
+ Lisp_Object Vlast_repeatable_command;
+
/* The prefix argument for the next command, in raw form. */
Lisp_Object Vprefix_arg;
/* Cache for modify_event_symbol. */
Lisp_Object system_key_syms;
- /* Keymap mapping ASCII function key sequences onto their
- preferred forms. Initialized by the terminal-specific lisp
- files. See the DEFVAR for more documentation. */
+ /* The kind of display: x, w32, ... */
+ Lisp_Object Vwindow_system;
+
+ /* Keymap mapping keys to alternative preferred forms.
+ See the DEFVAR for more documentation. */
Lisp_Object Vlocal_function_key_map;
- /* Keymap of key translations that can override keymaps. */
- Lisp_Object Vlocal_key_translation_map;
-
+ /* Keymap mapping ASCII function key sequences onto their preferred
+ forms. Initialized by the terminal-specific lisp files. See the
+ DEFVAR for more documentation. */
+ Lisp_Object Vinput_decode_map;
+
/* Minibufferless frames on this display use this frame's minibuffer. */
Lisp_Object Vdefault_minibuffer_frame;
\f
/* Macros for dealing with lispy events. */
-/* True iff EVENT has data fields describing it (i.e. a mouse click). */
+/* True if EVENT has data fields describing it (i.e. a mouse click). */
#define EVENT_HAS_PARAMETERS(event) (CONSP (event))
/* Extract the head from an event.
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 *, EMACS_TIME *));
+
/* Parent keymap of terminal-local function-key-map instances. */
extern Lisp_Object Vfunction_key_map;
-/* Parent keymap of terminal-local key-translation-map instances. */
+/* Keymap of key translations that can override keymaps. */
extern Lisp_Object Vkey_translation_map;
extern int parse_menu_item P_ ((Lisp_Object, int, int));
extern void kbd_buffer_store_help_event P_ ((Lisp_Object, Lisp_Object));
extern Lisp_Object menu_item_eval_property P_ ((Lisp_Object));
extern int kbd_buffer_events_waiting P_ ((int));
+extern void add_user_signals P_ ((int, const char *));
extern int tty_read_avail_input P_ ((struct terminal *, int,
struct input_event *));