home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / editors / mntemacs.zoo / src / dispextern.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-02  |  2.6 KB  |  79 lines

  1. /* Interface definitions for display code.
  2.    Copyright (C) 1985, 1990 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. /* Nonzero means do not assume anything about current
  22.  contents of actual terminal screen */
  23.  
  24. extern int screen_garbaged;
  25.  
  26. /* Desired terminal cursor position (to show position of point),
  27.  origin zero.  */
  28.  
  29. extern int cursor_hpos, cursor_vpos;
  30.  
  31. /* Nonzero means last display completed
  32.    and cursor is really at cursor_hpos, cursor_vpos.
  33.    Zero means it was preempted. */
  34.  
  35. extern int display_completed;
  36.  
  37. struct matrix
  38. {
  39.   /* Height of this matrix.  */
  40.   int height;
  41.   /* Width of this matrix.  */
  42.   int width;
  43.   /* Vector of used widths of lines, indexed by vertical position.  */
  44.   int *used;
  45.   /* Vector of line contents.
  46.      m->contents[V][H] is the character at position V, H.
  47.      Note that ->contents[...][screen_width] is always 0
  48.      and so is ->contents[...][-1].  */
  49.   unsigned char **contents;
  50.   /* Long vector from which the line contents are taken.  */
  51.   unsigned char *total_contents;
  52.   /* Vector indicating, for each line, whether it is highlighted.  */
  53.   char *highlight;
  54.   /* Vector indicating, for each line, whether its contents mean anything.  */
  55.   char *enable;
  56. };
  57.  
  58. /* Current screen contents.  */
  59. extern struct matrix *current_screen;
  60. /* Screen contents to be displayed.  */
  61. extern struct matrix *new_screen;
  62. /* Temporary buffer for screen contents.  */
  63. extern struct matrix *temp_screen;
  64.  
  65. /* Get ready to display on screen line VPOS at column HPOS
  66.    and return the string where the text of that line is stored.  */
  67.  
  68. unsigned char *get_display_line ();
  69.  
  70. /* Buffer used by `message' for formatting a message, and by print.c.  */
  71. extern char *message_buf;
  72.  
  73. /* All costs measured in characters.
  74.    So no cost can exceed the area of a screen, measured in characters.
  75.    This should not be more than million.
  76.    Meanwhile, we can add lots of millions together without overflow.  */
  77.  
  78. #define INFINITY 1000000
  79.