home *** CD-ROM | disk | FTP | other *** search
- /* Interface definitions for display code.
- Copyright (C) 1985, 1990 Free Software Foundation, Inc.
-
- This file is part of GNU Emacs.
-
- 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 1, 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
- 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, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-
- /* Nonzero means do not assume anything about current
- contents of actual terminal screen */
-
- extern int screen_garbaged;
-
- /* Desired terminal cursor position (to show position of point),
- origin zero. */
-
- extern int cursor_hpos, cursor_vpos;
-
- /* Nonzero means last display completed
- and cursor is really at cursor_hpos, cursor_vpos.
- Zero means it was preempted. */
-
- extern int display_completed;
-
- /* Nonzero while trying to read keyboard input at main program level. */
-
- extern int waiting_for_input;
-
- struct matrix
- {
- /* Height of this matrix. */
- int height;
- /* Width of this matrix. */
- int width;
- /* Vector of used widths of lines, indexed by vertical position. */
- int *used;
- /* Vector of line contents.
- m->contents[V][H] is the character at position V, H.
- Note that ->contents[...][screen_width] is always 0
- and so is ->contents[...][-1]. */
- unsigned char **contents;
- /* Long vector from which the line contents are taken. */
- unsigned char *total_contents;
- /* Vector indicating, for each line, whether it is highlighted. */
- char *highlight;
- /* Vector indicating, for each line, whether its contents mean anything. */
- char *enable;
- };
-
- /* Current screen contents. */
- extern struct matrix *current_screen;
- /* Screen contents to be displayed. */
- extern struct matrix *new_screen;
- /* Temporary buffer for screen contents. */
- extern struct matrix *temp_screen;
-
- /* Get ready to display on screen line VPOS at column HPOS
- and return the string where the text of that line is stored. */
-
- unsigned char *get_display_line ();
-
- /* Buffer used by `message' for formatting a message, and by print.c. */
- extern char *message_buf;
-
- /* Nonzero means message_buf is being used by print. */
- extern int message_buf_print;
-
- /* Message to display instead of minibuffer contents
- This is what the functions error and message make,
- and command echoing uses it as well.
- It overrides the minibuf_prompt as well as the buffer. */
- extern char *echo_area_contents;
-
- /* All costs measured in characters.
- So no cost can exceed the area of a screen, measured in characters.
- This should not be more than million.
- Meanwhile, we can add lots of millions together without overflow. */
-
- #define INFINITY 1000000
-