home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / emacs / src / dispextern.h < prev    next >
C/C++ Source or Header  |  1992-07-24  |  3KB  |  92 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. /* Nonzero while trying to read keyboard input at main program level.  */
  38.  
  39. extern int waiting_for_input;
  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.   unsigned char **contents;
  54.   /* Long vector from which the line contents are taken.  */
  55.   unsigned char *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. unsigned char *get_display_line ();
  73.  
  74. /* Buffer used by `message' for formatting a message, and by print.c.  */
  75. extern char *message_buf;
  76.  
  77. /* Nonzero means message_buf is being used by print.  */
  78. extern int message_buf_print;
  79.  
  80. /* Message to display instead of minibuffer contents
  81.    This is what the functions error and message make,
  82.    and command echoing uses it as well.
  83.    It overrides the minibuf_prompt as well as the buffer.  */
  84. extern char *echo_area_contents;
  85.  
  86. /* All costs measured in characters.
  87.    So no cost can exceed the area of a screen, measured in characters.
  88.    This should not be more than million.
  89.    Meanwhile, we can add lots of millions together without overflow.  */
  90.  
  91. #define INFINITY 1000000
  92.