
1: /* Definitions needed by most editing commands. 2: Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004, 3: 2005, 2006, 2007 Free Software Foundation, Inc. 4: 5: This file is part of GNU Emacs. 6: 7: GNU Emacs is free software; you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation; either version 2, or (at your option) 10: any later version. 11: 12: GNU Emacs is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with GNU Emacs; see the file COPYING. If not, write to 19: the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20: Boston, MA 02110-1301, USA. */ 21: 22: 23: #define Ctl(c) ((c)&037) 24: 25: /* Define the names of keymaps, just so people can refer to them in 26: calls to initial_define_key. These should *not* be used after 27: initialization; use-global-map doesn't affect these; it sets 28: current_global_map instead. */ 29: extern Lisp_Object global_map; 30: extern Lisp_Object meta_map; 31: extern Lisp_Object control_x_map; 32: 33: extern Lisp_Object Vminibuffer_local_map; 34: 35: extern Lisp_Object Vminibuffer_local_ns_map; 36: 37: /* keymap used for minibuffers when doing completion */ 38: extern Lisp_Object Vminibuffer_local_completion_map; 39: 40: /* keymap used for minibuffers when doing completion in filenames*/ 41: extern Lisp_Object Vminibuffer_local_filename_completion_map; 42: 43: /* keymap used for minibuffers when doing completion and require a match */ 44: extern Lisp_Object Vminibuffer_local_must_match_map; 45: 46: /* keymap used for minibuffers when doing completion in filenames 47: and require a match */ 48: extern Lisp_Object Vminibuffer_local_must_match_filename_map; 49: 50: /* Last character of last key sequence. */ 51: extern Lisp_Object last_command_char; 52: 53: /* Last input character read as a command, not counting menus 54: reached by the mouse. */ 55: extern Lisp_Object last_nonmenu_event; 56: 57: /* List of command events to be re-read, or Qnil. */ 58: extern Lisp_Object Vunread_command_events; 59: 60: /* Command char event to be re-read, or -1 if none. 61: Setting this is obsolete, but some things should still check it. */ 62: extern EMACS_INT unread_command_char; 63: 64: /* The command being executed by the command loop. 65: Commands may set this, and the value set will be copied into 66: current_kboard->Vlast_command instead of the actual command. */ 67: extern Lisp_Object Vthis_command; 68: 69: /* If not Qnil, this is a switch-frame event which we decided to put 70: off until the end of a key sequence. This should be read as the 71: next command input, after any Vunread_command_events. 72: 73: read_key_sequence uses this to delay switch-frame events until the 74: end of the key sequence; Fread_char uses it to put off switch-frame 75: events until a non-ASCII event is acceptable as input. */ 76: extern Lisp_Object unread_switch_frame; 77: 78: /* The value of point when the last command was started. */ 79: extern int last_point_position; 80: 81: /* The buffer that was current when the last command was started. */ 82: extern Lisp_Object last_point_position_buffer; 83: 84: /* The window that was selected when the last command was started. */ 85: extern Lisp_Object last_point_position_window; 86: 87: /* Nonzero means ^G can quit instantly */ 88: extern int immediate_quit; 89: 90: extern Lisp_Object Vexecuting_kbd_macro; 91: 92: /* Nonzero if input is coming from the keyboard */ 93: 94: #define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive) 95: 96: /* Set this nonzero to force reconsideration of mode line. */ 97: 98: extern int update_mode_lines; 99: 100: /* Nonzero means reading single-character input with prompt 101: so put cursor on minibuffer after the prompt. */ 102: 103: extern int cursor_in_echo_area; 104: 105: /* arch-tag: 4f7ca0b7-6a56-4b20-8bf5-b67a99921d1d 106: (do not change this comment) */