1: /* Interface definitions for display code.
2: Copyright (C) 1985 Richard M. Stallman.
3:
4: This file is part of GNU Emacs.
5:
6: GNU Emacs is distributed in the hope that it will be useful,
7: but WITHOUT ANY WARRANTY. No author or distributor
8: accepts responsibility to anyone for the consequences of using it
9: or for whether it serves any particular purpose or works at all,
10: unless he says so in writing. Refer to the GNU Emacs General Public
11: License for full details.
12:
13: Everyone is granted permission to copy, modify and redistribute
14: GNU Emacs, but only under the conditions described in the
15: GNU Emacs General Public License. A copy of this license is
16: supposed to have been given to you along with GNU Emacs so you
17: can know your rights and responsibilities. It should be in a
18: file named COPYING. Among other things, the copyright notice
19: and this notice must be preserved on all copies. */
20:
21:
22: /* Nonzero means do not assume anything about current
23: contents of actual terminal screen */
24:
25: extern int screen_garbaged;
26:
27: /* Desired terminal cursor position (to show position of dot),
28: origin one */
29:
30: extern int cursX, cursY;
31:
32: /* Nonzero means last display completed and cursor is really at cursX, cursY.
33: Zero means it was preempted. */
34:
35: extern int display_completed;
36:
37: /* Display line structure.
38: This structure records the contents of a line
39: either as already on the display
40: or as we desire to have it on the display.
41:
42: PhysScreen is a vector of pointers to lines
43: describing the actual contents of the screen.
44: DesiredScreen is a vector of pointers to lines
45: describing what we want to put on the screen.
46: These were made from the buffers being displayed
47: by the file window.c
48:
49: The code in this file compares those two vectors of display lines
50: and performs the updating.
51:
52: As display lines are used only to go in those vectors,
53: the most display lines that ever ought to exist is
54: twice the maximum screen size. That many are created
55: initially and put in a pool. If the pool is ever empty
56: and a line is needed, that indicates a bug.
57: */
58:
59: struct display_line
60: {
61: struct display_line *next; /* Chain for free lines. */
62: short length; /* the number of valid characters in body */
63: char highlighted; /* 1 means write this line in standout mode */
64: char physical; /* Mark bit for gc'ing, in update_screen */
65: char body[MScreenWidth + 4]; /* the actual text of the line */
66: };
67:
68: /* Allocate a line structure for screen line `vpos' (origin 0)
69: to start output in it at `hpos' (origin 0, may be negative) */
70:
71: struct display_line *get_display_line (), *new_display_line ();
Defined struct's
display_line
defined in line
59; used 70 times
- in line 61(2),
71(2)
- in /usr/src/new/emacs/src/dispnew.c line
81-90(8),
105(2),
118(2),
144(4),
156-159(4),
168(2),
176(2),
198(2),
232(2),
268-273(4),
355(2),
395(2),
429(2),
444(2),
517-518(4),
718(2)
- in /usr/src/new/emacs/src/scroll.c line
234-235(4)
- in /usr/src/new/emacs/src/xdisp.c line
215(2),
1073(2),
1325(2),
1558(2)
- in /usr/src/new/emacs/src/xterm.c line
75(2),
332(2),
512(2),
646(2)
Usage of this include