You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+#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. */
/* 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
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. */
/* 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. */