]> code.delx.au - gnu-emacs/blobdiff - src/termchar.h
TODO update
[gnu-emacs] / src / termchar.h
index 2bac6c682129527a48957a5e98900d59b635c630..c85bbd11fd5c7e7ca887a4d72451cf48ea6a65dd 100644 (file)
@@ -1,6 +1,5 @@
 /* Flags and parameters describing terminal's characteristics.
-   Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+   Copyright (C) 1985-1986, 2001-2013 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -34,18 +33,18 @@ struct tty_output
 struct tty_display_info
 {
   struct tty_display_info *next; /* Chain of all tty devices. */
-  
+
   char *name;                   /* The name of the device file or 0 if
                                    stdin/stdout. */
   char *type;                   /* The type of the tty. */
-  
+
   /* Input/output */
-  
+
   FILE *input;                  /* The stream to be used for terminal input.
                                    NULL if the terminal is suspended. */
   FILE *output;                 /* The stream to be used for terminal output.
                                    NULL if the terminal is suspended. */
-  
+
   FILE *termscript;             /* If nonzero, send all terminal output
                                    characters to this stream also.  */
 
@@ -65,93 +64,78 @@ struct tty_display_info
   /* Redisplay. */
 
   Lisp_Object top_frame;        /* The topmost frame on this tty. */
-  
+
   /* The previous frame we displayed on this tty.  */
   struct frame *previous_frame;
   int previous_color_mode;
 
-#ifdef MSDOS
-  /* These variables describe the range of text currently shown in its
-     mouse-face, together with the window they apply to.  As long as
-     the mouse stays within this range, we need not redraw anything on
-     its account.  Rows and columns are glyph matrix positions in
-     MOUSE_FACE_WINDOW.  */
-  int mouse_face_beg_row, mouse_face_beg_col;
-  int mouse_face_end_row, mouse_face_end_col;
-  int mouse_face_past_end;
-  Lisp_Object mouse_face_window;
-  int mouse_face_face_id;
-
-  /* 1 if a mouse motion event came and we didn't handle it right away because
-     gc was in progress.  */
-  int mouse_face_deferred_gc;
-
-  /* FRAME and X, Y position of mouse when last checked for
-     highlighting.  X and Y can be negative or out of range for the frame.  */
-  struct frame *mouse_face_mouse_frame;
-  int mouse_face_mouse_x, mouse_face_mouse_y;
-
-  /* Nonzero means defer mouse-motion highlighting.  */
-  int mouse_face_defer;
-
-  /* Nonzero means that the mouse highlight should not be shown.  */
-  int mouse_face_hidden;
-#endif /* !MSDOS */
+  /* Information about the range of text currently shown in
+     mouse-face.  */
+  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;
+
+  /* Buffer storing terminal description strings (see tgetstr in the
+     Termcap manual).  Only init_tty and delete_tty should change
+     this.  */
+  char *termcap_strings_buffer;
 
   /* Strings, numbers and flags taken from the termcap entry.  */
 
-  char *TS_ins_line;           /* "al" */
-  char *TS_ins_multi_lines;    /* "AL" (one parameter, # lines to insert) */
-  char *TS_bell;                /* "bl" */
-  char *TS_clr_to_bottom;       /* "cd" */
-  char *TS_clr_line;           /* "ce", clear to end of line */
-  char *TS_clr_frame;          /* "cl" */
-  char *TS_set_scroll_region;  /* "cs" (2 params, first line and last line) */
-  char *TS_set_scroll_region_1; /* "cS" (4 params: total lines,
+  const char *TS_ins_line;     /* "al" */
+  const char *TS_ins_multi_lines; /* "AL" (one parameter, # lines to insert) */
+  const char *TS_bell;         /* "bl" */
+  const char *TS_clr_to_bottom;        /* "cd" */
+  const char *TS_clr_line;     /* "ce", clear to end of line */
+  const char *TS_clr_frame;    /* "cl" */
+  const char *TS_set_scroll_region; /* "cs" (2 params, first line and last line) */
+  const char *TS_set_scroll_region_1; /* "cS" (4 params: total lines,
                                    lines above scroll region, lines below it,
                                    total lines again) */
-  char *TS_del_char;           /* "dc" */
-  char *TS_del_multi_chars;    /* "DC" (one parameter, # chars to delete) */
-  char *TS_del_line;           /* "dl" */
-  char *TS_del_multi_lines;    /* "DL" (one parameter, # lines to delete) */
-  char *TS_delete_mode;                /* "dm", enter character-delete mode */
-  char *TS_end_delete_mode;    /* "ed", leave character-delete mode */
-  char *TS_end_insert_mode;    /* "ei", leave character-insert mode */
-  char *TS_ins_char;           /* "ic" */
-  char *TS_ins_multi_chars;    /* "IC" (one parameter, # chars to insert) */
-  char *TS_insert_mode;                /* "im", enter character-insert mode */
-  char *TS_pad_inserted_char;  /* "ip".  Just padding, no commands.  */
-  char *TS_end_keypad_mode;    /* "ke" */
-  char *TS_keypad_mode;                /* "ks" */
-  char *TS_pad_char;           /* "pc", char to use as padding */
-  char *TS_repeat;             /* "rp" (2 params, # times to repeat
+  const char *TS_del_char;     /* "dc" */
+  const char *TS_del_multi_chars; /* "DC" (one parameter, # chars to delete) */
+  const char *TS_del_line;     /* "dl" */
+  const char *TS_del_multi_lines; /* "DL" (one parameter, # lines to delete) */
+  const char *TS_delete_mode;  /* "dm", enter character-delete mode */
+  const char *TS_end_delete_mode; /* "ed", leave character-delete mode */
+  const char *TS_end_insert_mode; /* "ei", leave character-insert mode */
+  const char *TS_ins_char;     /* "ic" */
+  const char *TS_ins_multi_chars; /* "IC" (one parameter, # chars to insert) */
+  const char *TS_insert_mode;  /* "im", enter character-insert mode */
+  const char *TS_pad_inserted_char; /* "ip".  Just padding, no commands.  */
+  const char *TS_end_keypad_mode; /* "ke" */
+  const char *TS_keypad_mode;  /* "ks" */
+  const char *TS_pad_char;     /* "pc", char to use as padding */
+  const char *TS_repeat;       /* "rp" (2 params, # times to repeat
                                   and character to be repeated) */
-  char *TS_end_standout_mode;  /* "se" */
-  char *TS_fwd_scroll;         /* "sf" */
-  char *TS_standout_mode;       /* "so" */
-  char *TS_rev_scroll;          /* "sr" */
-  char *TS_end_termcap_modes;   /* "te" */
-  char *TS_termcap_modes;       /* "ti" */
-  char *TS_visible_bell;        /* "vb" */
-  char *TS_cursor_normal;       /* "ve" */
-  char *TS_cursor_visible;      /* "vs" */
-  char *TS_cursor_invisible;    /* "vi" */
-  char *TS_set_window;          /* "wi" (4 params, start and end of window,
+  const char *TS_end_standout_mode; /* "se" */
+  const char *TS_fwd_scroll;   /* "sf" */
+  const char *TS_standout_mode;        /* "so" */
+  const char *TS_rev_scroll;   /* "sr" */
+  const char *TS_end_termcap_modes; /* "te" */
+  const char *TS_termcap_modes;        /* "ti" */
+  const char *TS_visible_bell; /* "vb" */
+  const char *TS_cursor_normal;        /* "ve" */
+  const char *TS_cursor_visible; /* "vs" */
+  const char *TS_cursor_invisible; /* "vi" */
+  const char *TS_set_window;   /* "wi" (4 params, start and end of window,
                                    each as vpos and hpos) */
 
-  char *TS_enter_bold_mode;     /* "md" -- turn on bold (extra bright mode).  */
-  char *TS_enter_dim_mode;      /* "mh" -- turn on half-bright mode.  */
-  char *TS_enter_blink_mode;    /* "mb" -- enter blinking mode.  */
-  char *TS_enter_reverse_mode;  /* "mr" -- enter reverse video mode.  */
-  char *TS_exit_underline_mode; /* "us" -- start underlining.  */
-  char *TS_enter_underline_mode; /* "ue" -- end underlining.  */
+  const char *TS_enter_bold_mode; /* "md" -- turn on bold (extra bright mode).  */
+  const char *TS_enter_italic_mode; /* "ZH" -- turn on italics mode.  */
+  const char *TS_enter_dim_mode; /* "mh" -- turn on half-bright mode.  */
+  const char *TS_enter_reverse_mode; /* "mr" -- enter reverse video mode.  */
+  const char *TS_exit_underline_mode; /* "us" -- start underlining.  */
+  const char *TS_enter_underline_mode; /* "ue" -- end underlining.  */
 
   /* "as"/"ae" -- start/end alternate character set.  Not really
      supported, yet.  */
-  char *TS_enter_alt_charset_mode;
-  char *TS_exit_alt_charset_mode;
+  const char *TS_enter_alt_charset_mode;
+  const char *TS_exit_alt_charset_mode;
 
-  char *TS_exit_attribute_mode; /* "me" -- switch appearances off.  */
+  const char *TS_exit_attribute_mode; /* "me" -- switch appearances off.  */
 
   /* Value of the "NC" (no_color_video) capability, or 0 if not present.  */
   int TN_no_color_video;
@@ -163,12 +147,12 @@ struct tty_display_info
   int TN_max_pairs;
 
   /* "op" -- SVr4 set default pair to its original value.  */
-  char *TS_orig_pair;
+  const char *TS_orig_pair;
 
   /* "AF"/"AB" or "Sf"/"Sb"-- set ANSI or SVr4 foreground/background color.
      1 param, the color index.  */
-  char *TS_set_foreground;
-  char *TS_set_background;
+  const char *TS_set_foreground;
+  const char *TS_set_background;
 
   int TF_hazeltine;             /* termcap hz flag. */
   int TF_insmode_motion;        /* termcap mi flag: can move while in insert mode. */
@@ -181,12 +165,12 @@ struct tty_display_info
   int RPov;                     /* # chars to start a TS_repeat */
 
   int delete_in_insert_mode;    /* delete mode == insert mode */
-  
+
   int se_is_so;                 /* 1 if same string both enters and leaves
                                    standout mode */
-  
+
   int costs_set;                /* Nonzero if costs have been calculated. */
-  
+
   int insert_mode;              /* Nonzero when in insert mode.  */
   int standout_mode;            /* Nonzero when in standout mode.  */
 
@@ -205,7 +189,7 @@ struct tty_display_info
    lines from those operations.  */
 
   int specified_window;
-  
+
   /* Flag used in tty_show/hide_cursor.  */
 
   int cursor_hidden;
@@ -223,9 +207,6 @@ extern struct tty_display_info *tty_list;
   (((f)->output_method == output_termcap       \
     || (f)->output_method == output_msdos_raw) \
    ? (f)->terminal->display_info.tty            \
-   : (abort(), (struct tty_display_info *) 0))
+   : (emacs_abort (), (struct tty_display_info *) 0))
 
 #define CURTTY() FRAME_TTY (SELECTED_FRAME())
-
-/* arch-tag: bf9f0d49-842b-42fb-9348-ec8759b27193
-   (do not change this comment) */