X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a0b5606ec769968b10c765f8ff50f312d691ef62..1a5a05cf6f68277c142fe3753581d3b0c6470156:/src/termchar.h diff --git a/src/termchar.h b/src/termchar.h index 687f7fbd11..35b30fb90c 100644 --- a/src/termchar.h +++ b/src/termchar.h @@ -1,12 +1,12 @@ /* Flags and parameters describing terminal's characteristics. - Copyright (C) 1985-1986, 2001-2013 Free Software Foundation, Inc. + Copyright (C) 1985-1986, 2001-2016 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 3 of the License, or -(at your option) any later version. +the Free Software Foundation, either version 3 of the License, or (at +your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,6 +16,10 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ +#ifndef EMACS_TERMCHAR_H +#define EMACS_TERMCHAR_H + +#include #include "dispextern.h" /* Each termcap frame points to its own struct tty_output object in @@ -30,9 +34,7 @@ struct tty_output /* There is nothing else here at the moment... */ }; -#ifndef TERMINFO enum { TERMCAP_BUFFER_SIZE = 4096 }; -#endif /* Parameters that are shared between frames on the same tty device. */ @@ -56,7 +58,8 @@ struct tty_display_info struct emacs_tty *old_tty; /* The initial tty mode bits */ - unsigned term_initted : 1; /* 1 if we have been through init_sys_modes. */ + bool_bf term_initted : 1; /* True if we have been through + init_sys_modes. */ int reference_count; /* Number of frames that are on this display. */ @@ -78,7 +81,6 @@ struct tty_display_info mouse-face. */ Mouse_HLInfo mouse_highlight; -#ifndef TERMINFO /* Buffer used internally by termcap (see tgetent in the Termcap manual). Only init_tty should use this. */ char termcap_term_buffer[TERMCAP_BUFFER_SIZE]; @@ -86,7 +88,6 @@ struct tty_display_info /* Buffer storing terminal description strings (see tgetstr in the Termcap manual). Only init_tty should use this. */ char termcap_strings_buffer[TERMCAP_BUFFER_SIZE]; -#endif /* Strings, numbers and flags taken from the termcap entry. */ @@ -170,12 +171,12 @@ struct tty_display_info int RPov; /* # chars to start a TS_repeat */ - unsigned delete_in_insert_mode : 1; /* delete mode == insert mode */ + bool_bf delete_in_insert_mode : 1; /* delete mode == insert mode */ - unsigned costs_set : 1; /* Nonzero if costs have been calculated. */ + bool_bf costs_set : 1; /* True if costs have been calculated. */ - unsigned insert_mode : 1; /* Nonzero when in insert mode. */ - unsigned standout_mode : 1; /* Nonzero when in standout mode. */ + bool_bf insert_mode : 1; /* True when in insert mode. */ + bool_bf standout_mode : 1; /* True when in standout mode. */ /* 1 if should obey 0200 bit in input chars as "Meta", 2 if should keep 0200 bit in input chars. 0 to ignore the 0200 bit. */ @@ -193,11 +194,33 @@ struct tty_display_info /* Flag used in tty_show/hide_cursor. */ - unsigned cursor_hidden : 1; + bool_bf cursor_hidden : 1; + + /* True means use ^S/^Q for flow control. */ + + bool_bf flow_control : 1; + + /* True means we are displaying a TTY menu on this tty. */ + bool_bf showing_menu : 1; + + /* True means spaces in the text must actually be output; + can't just skip over some columns to leave them blank. */ + bool_bf must_write_spaces : 1; - /* Nonzero means use ^S/^Q for flow control. */ + /* True if TTY can insert and delete lines. */ + bool_bf line_ins_del_ok : 1; - unsigned flow_control : 1; + /* True if TTY can insert and delete chars. */ + bool_bf char_ins_del_ok : 1; + + /* True if TTY supports setting the scroll window. */ + bool_bf scroll_region_ok : 1; + + /* True if TTY remembers lines scrolled off bottom. */ + bool_bf memory_below_frame : 1; + + /* Cost of setting the scroll window, measured in characters. */ + int scroll_region_cost; }; /* A chain of structures for all tty devices currently in use. */ @@ -211,3 +234,5 @@ extern struct tty_display_info *tty_list; : (emacs_abort (), (struct tty_display_info *) 0)) #define CURTTY() FRAME_TTY (SELECTED_FRAME()) + +#endif /* EMACS_TERMCHAR_H */