Add 2009 to copyright years.
[bpt/emacs.git] / src / termchar.h
index 9bc3e21..feecf51 100644 (file)
@@ -1,13 +1,13 @@
 /* Flags and parameters describing terminal's characteristics.
    Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007  Free Software Foundation, Inc.
+                 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+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 2, 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
@@ -15,9 +15,7 @@ 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
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Each termcap frame points to its own struct tty_output object in
    the output_data.tty field.  The tty_output structure contains the
@@ -70,6 +68,44 @@ struct tty_display_info
   
   /* 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 */
+
+  /* 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.  */
 
@@ -193,7 +229,8 @@ extern struct tty_display_info *tty_list;
 
 
 #define FRAME_TTY(f)                            \
-  ((f)->output_method == output_termcap         \
+  (((f)->output_method == output_termcap       \
+    || (f)->output_method == output_msdos_raw) \
    ? (f)->terminal->display_info.tty            \
    : (abort(), (struct tty_display_info *) 0))