X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/350f51adaca06e0b52800faf88ec5341c723bef7..8b55eeeb70be4b4ff3dd4694013bdb1a9f668bc6:/src/termchar.h diff --git a/src/termchar.h b/src/termchar.h index 8bffd3e546..feb89e02d0 100644 --- a/src/termchar.h +++ b/src/termchar.h @@ -1,5 +1,5 @@ /* Flags and parameters describing terminal's characteristics. - Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1985-1986, 2001-2013 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -16,6 +16,8 @@ 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 . */ +#include "dispextern.h" + /* Each termcap frame points to its own struct tty_output object in the output_data.tty field. The tty_output structure contains the information that is specific to termcap frames. */ @@ -28,6 +30,8 @@ struct tty_output /* There is nothing else here at the moment... */ }; +enum { TERMCAP_BUFFER_SIZE = 4096 }; + /* Parameters that are shared between frames on the same tty device. */ struct tty_display_info @@ -73,13 +77,12 @@ struct tty_display_info Mouse_HLInfo mouse_highlight; /* Buffer used internally by termcap (see tgetent in the Termcap - manual). Only init_tty and delete_tty should change this. */ - char *termcap_term_buffer; + manual). Only init_tty should use this. */ + char termcap_term_buffer[TERMCAP_BUFFER_SIZE]; /* Buffer storing terminal description strings (see tgetstr in the - Termcap manual). Only init_tty and delete_tty should change - this. */ - char *termcap_strings_buffer; + Termcap manual). Only init_tty should use this. */ + char termcap_strings_buffer[TERMCAP_BUFFER_SIZE]; /* Strings, numbers and flags taken from the termcap entry. */ @@ -191,6 +194,28 @@ struct tty_display_info /* Nonzero means use ^S/^Q for flow control. */ unsigned flow_control : 1; + + /* Non-zero means we are displaying a TTY menu on this tty. */ + unsigned showing_menu : 1; + + /* Nonzero means spaces in the text must actually be output; + can't just skip over some columns to leave them blank. */ + unsigned must_write_spaces : 1; + + /* Nonzero if TTY can insert and delete lines. */ + unsigned line_ins_del_ok : 1; + + /* Nonzero if TTY can insert and delete chars. */ + unsigned char_ins_del_ok : 1; + + /* Nonzero if TTY supports setting the scroll window. */ + unsigned scroll_region_ok : 1; + + /* Nonzero if TTY remembers lines scrolled off bottom. */ + unsigned 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. */