1 /* Definitions of marked slots in consoles
2 Copyright (C) 1990, 1992, 1993 Free Software Foundation, Inc.
4 This file is part of SXEmacs
6 SXEmacs 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
9 (at your option) any later version.
11 SXEmacs 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.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* Synched up with: Mule 2.0, FSF 19.30. (see FSF keyboard.h.) */
22 /* In the declaration of the console structure, this file is included
23 after defining MARKED_SLOT(x) to be Lisp_Object x; i.e. just a slot
24 definition. In the garbage collector this file is included after
25 defining MARKED_SLOT(x) to be mark_object(console->x). */
27 #ifndef CONSOLE_SLOTS_FIRST_NAME
28 #define CONSOLE_SLOTS_FIRST_NAME name
31 /* Name of this console, for resourcing and printing purposes.
32 If not explicitly given, it's initialized in a console-specific
36 /* What this console is connected to */
37 MARKED_SLOT(connection);
39 /* A canonical name for the connection that is used to determine
40 whether create_console() is being called on an existing console. */
41 MARKED_SLOT(canon_connection);
43 /* List of devices on this console. */
44 MARKED_SLOT(device_list);
46 /* Currently selected device. */
47 MARKED_SLOT(selected_device);
49 /* Most-recently-selected non-minibuffer-only frame. Always
50 the same as the selected frame, unless that's a minibuffer-only
52 MARKED_SLOT(last_nonminibuf_frame);
54 /* If non-nil, a keymap that overrides all others but applies only to
55 this console. Lisp code that uses this instead of calling next-event
56 can effectively wait for input in the any-console state, and hence
57 avoid blocking out the other consoles. See universal-argument in
58 lisp/simple.el for an example.
60 #### This comes from FSF Emacs; but there's probably a better
61 solution that involves making next-event itself work over all
63 MARKED_SLOT(overriding_terminal_local_map);
65 /* Last command executed by the editor command loop, not counting
66 commands that set the prefix argument. */
67 MARKED_SLOT(last_command);
69 /* The prefix argument for the next command, in raw form. */
70 MARKED_SLOT(prefix_arg);
72 /* Where information about a partially completed key sequence
74 MARKED_SLOT(command_builder);
76 /* Non-nil while a kbd macro is being defined. */
77 MARKED_SLOT(defining_kbd_macro);
79 /* This is a lisp vector, which contains the events of the keyboard macro
80 currently being read. It is reallocated when the macro gets too large.
82 MARKED_SLOT(kbd_macro_builder);
84 /* Last anonymous kbd macro defined. */
85 MARKED_SLOT(last_kbd_macro);
88 /* ERASE character from stty settings. */
89 MARKED_SLOT(tty_erase_char);
92 /* Minibufferless frames on this console use this frame's minibuffer. */
93 MARKED_SLOT(default_minibuffer_frame);
95 /* Keymap mapping ASCII function key sequences onto their preferred forms.
96 Initialized by the terminal-specific lisp files. */
97 MARKED_SLOT(function_key_map);
99 #ifndef CONSOLE_SLOTS_LAST_NAME
100 #define CONSOLE_SLOTS_LAST_NAME function_key_map