home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / editors / emcs1857 / 1857sr~1.zoo / src / dispextern.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-02  |  2.7 KB  |  83 lines

  1. /* Interface definitions for display code.
  2.    Copyright (C) 1985, 1990, 1991 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20.  
  21. /* Modified 1991 for 8-bit character support by Thomas Bellman, modelled
  22.  * after Howard Hayles modifications.  See chartab.c for details. */
  23.  
  24.  
  25. /* Nonzero means do not assume anything about current
  26.  contents of actual terminal screen */
  27.  
  28. extern int screen_garbaged;
  29.  
  30. /* Desired terminal cursor position (to show position of point),
  31.  origin zero.  */
  32.  
  33. extern int cursor_hpos, cursor_vpos;
  34.  
  35. /* Nonzero means last display completed
  36.    and cursor is really at cursor_hpos, cursor_vpos.
  37.    Zero means it was preempted. */
  38.  
  39. extern int display_completed;
  40.  
  41. struct matrix
  42. {
  43.   /* Height of this matrix.  */
  44.   int height;
  45.   /* Width of this matrix.  */
  46.   int width;
  47.   /* Vector of used widths of lines, indexed by vertical position.  */
  48.   int *used;
  49.   /* Vector of line contents.
  50.      m->contents[V][H] is the character at position V, H.
  51.      Note that ->contents[...][screen_width] is always 0
  52.      and so is ->contents[...][-1].  */
  53.   glyf_t **contents;
  54.   /* Long vector from which the line contents are taken.  */
  55.   glyf_t *total_contents;
  56.   /* Vector indicating, for each line, whether it is highlighted.  */
  57.   char *highlight;
  58.   /* Vector indicating, for each line, whether its contents mean anything.  */
  59.   char *enable;
  60. };
  61.  
  62. /* Current screen contents.  */
  63. extern struct matrix *current_screen;
  64. /* Screen contents to be displayed.  */
  65. extern struct matrix *new_screen;
  66. /* Temporary buffer for screen contents.  */
  67. extern struct matrix *temp_screen;
  68.  
  69. /* Get ready to display on screen line VPOS at column HPOS
  70.    and return the string where the text of that line is stored.  */
  71.  
  72. glyf_t *get_display_line ();
  73.  
  74. /* Buffer used by `message' for formatting a message, and by print.c.  */
  75. extern char *message_buf;
  76.  
  77. /* All costs measured in characters.
  78.    So no cost can exceed the area of a screen, measured in characters.
  79.    This should not be more than million.
  80.    Meanwhile, we can add lots of millions together without overflow.  */
  81.  
  82. #define INFINITY 1000000
  83.