termchar.h 2.76 KB
Newer Older
Jim Blandy's avatar
Jim Blandy committed
1 2 3 4 5 6 7
/* Flags and parameters describing terminal's characteristics.
   Copyright (C) 1985, 1986 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
Karl Heuer's avatar
Karl Heuer committed
8
the Free Software Foundation; either version 2, or (at your option)
Jim Blandy's avatar
Jim Blandy committed
9 10 11 12 13 14 15 16 17
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING.  If not, write to
18 19
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */
Jim Blandy's avatar
Jim Blandy committed
20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
struct terminal
{
  
  /* EMACS_INT baud_rate; */	/* Output speed in baud */
  int must_write_spaces;	/* Nonzero means spaces in the text must
				   actually be output; can't just skip over
				   some columns to leave them blank.  */
  int fast_clear_end_of_line;   /* Nonzero means terminal has a `ce' string */
  
  int line_ins_del_ok;          /* Terminal can insert and delete lines */
  int char_ins_del_ok;          /* Terminal can insert and delete chars */
  int scroll_region_ok;         /* Terminal supports setting the scroll
                                   window */
  int scroll_region_cost;	/* Cost of setting the scroll window,
                                   measured in characters. */
  int memory_below_frame;	/* Terminal remembers lines scrolled
                                   off bottom */
Jim Blandy's avatar
Jim Blandy committed
38

39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
#if 0  /* These are not used anywhere. */
  int min_padding_speed;	/* Speed below which no padding necessary. */
  int dont_calculate_costs;     /* Nonzero means don't bother computing
                                   various cost tables; we won't use them. */
#endif
};

typedef struct terminal *TERMINAL_PTR;

extern TERMINAL_PTR current_terminal;

#define CURRENT_TERMINAL() \
  (current_terminal ? current_terminal : (abort(), (TERMINAL_PTR) 0))

#define TERMINAL_MUST_WRITE_SPACES(t) ((t)->must_write_spaces)
#define TERMINAL_FAST_CLEAR_END_OF_LINE(t) ((t)->fast_clear_end_of_line)
#define TERMINAL_LINE_INS_DEL_OK(t) ((t)->line_ins_del_ok)
#define TERMINAL_CHAR_INS_DEL_OK(t) ((t)->char_ins_del_ok)
#define TERMINAL_SCROLL_REGION_OK(t) ((t)->scroll_region_ok)
#define TERMINAL_SCROLL_REGION_COST(t) ((t)->scroll_region_cost)
#define TERMINAL_MEMORY_BELOW_FRAME(t) ((t)->memory_below_frame)

#if 0
/* These are not used anywhere. */
#define TERMINAL_MIN_PADDING_SPEED(t) ((t)->min_padding_speed)
#define TERMINAL_DONT_CALCULATE_COSTS(t) ((t)->dont_calculate_costs)
#endif
Miles Bader's avatar
Miles Bader committed
66 67 68

/* arch-tag: bf9f0d49-842b-42fb-9348-ec8759b27193
   (do not change this comment) */