annotate src/bufslots.h @ 110:fe104dbd9147 r20-1b7

Import from CVS: tag r20-1b7
author cvs
date Mon, 13 Aug 2007 09:19:45 +0200
parents 131b0175ea99
children 78478c60bfcd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 /* Definitions of marked slots in buffers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 Copyright (C) 1990, 1992, 1993 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 This file is part of XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 later version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 for more details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 /* Synched up with: Mule 2.0, FSF 19.30. Split out of buffer.h. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 /* Authorship:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 FSF: long ago (part of buffer.h).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 JWZ: separated out from buffer.h, early in Lemacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 XEmacs: a few other changes.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 /* In the declaration of the buffer structure, this file is included
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 after defining MARKED_SLOT(x) to be Lisp_Object x; i.e. just a slot
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 definition. In the garbage collector this file is included after
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 defining MARKED_SLOT(x) to be mark_object(buffer->x). */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 /* The name of this buffer. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 MARKED_SLOT (name);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 /* The name of the file visited in this buffer, or nil. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 MARKED_SLOT (filename);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 /* Dir for expanding relative file names. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 MARKED_SLOT (directory);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 /* True iff this buffer has been backed up (if you write to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 visited file and it hasn't been backed up, then a backup will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 be made). */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 /* #### This isn't really used by the C code, so could be deleted. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 MARKED_SLOT (backed_up);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 /* Length of file when last read or saved.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 This is not in the struct buffer_text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 because it's not used in indirect buffers at all. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 MARKED_SLOT (save_length);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 /* File name used for auto-saving this buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 This is not in the struct buffer_text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 because it's not used in indirect buffers at all. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 MARKED_SLOT (auto_save_file_name);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 /* Non-nil if buffer read-only. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 MARKED_SLOT (read_only);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 /* "The mark". This is a marker which may
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 point into this buffer or may point nowhere. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 MARKED_SLOT (mark);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 /* Alist of elements (SYMBOL . VALUE-IN-THIS-BUFFER)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 for all per-buffer variables of this buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 Specifically, this lists those variables that have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 a buffer-local value in this buffer: i.e. those
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 whose value does not shadow the default value.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 (Remember that for any particlar variable created
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 with `make-local-variable' or `make-variable-buffer-local',
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 it will have a per-buffer value in some buffers and a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 default value in others.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 Variables declared in C with DEFVAR_BUFFER_LOCAL() (i.e.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 those stored in the struct buffer) are not listed here. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 MARKED_SLOT (local_var_alist);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 /* Symbol naming major mode (eg, lisp-mode). */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 MARKED_SLOT (major_mode);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 /* Pretty name of major mode (eg, "Lisp"). */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 MARKED_SLOT (mode_name);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 /* Modeline element that controls format of modeline. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 MARKED_SLOT (modeline_format);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 /* Keys that are bound local to this buffer. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 MARKED_SLOT (keymap);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 /* This buffer's local abbrev table. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 MARKED_SLOT (abbrev_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 /* This buffer's syntax table. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 MARKED_SLOT (syntax_table);
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
97 /* Massaged values from the syntax table, for faster lookup. */
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
98 MARKED_SLOT (mirror_syntax_table);
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
99
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
100 #ifdef MULE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
101 /* This buffer's category table. */
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
102 MARKED_SLOT (category_table);
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
103
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
104 /* This buffer's coding system. */
110
fe104dbd9147 Import from CVS: tag r20-1b7
cvs
parents: 70
diff changeset
105 MARKED_SLOT (buffer_file_coding_system);
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
106 #endif /* MULE */
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 /* Values of several buffer-local variables.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 tab-width is buffer-local so that redisplay can find it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 in buffers that are not current */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 MARKED_SLOT (case_fold_search);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 MARKED_SLOT (tab_width);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 MARKED_SLOT (fill_column);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 MARKED_SLOT (left_margin);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 /* Function to call when insert space past fill column. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 MARKED_SLOT (auto_fill_function);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 /* nil: text, t: binary.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 This value is meaningful only on certain operating systems. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 MARKED_SLOT (buffer_file_type);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 /* Case table for case-conversion in this buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 This char-table maps each char into its lower-case version. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 MARKED_SLOT (downcase_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 /* Char-table mapping each char to its upper-case version. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 MARKED_SLOT (upcase_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 /* Char-table for conversion for case-folding search. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 MARKED_SLOT (case_canon_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 /* Char-table of equivalences for case-folding search. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 MARKED_SLOT (case_eqv_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
135 #ifdef MULE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
136 /* #### The purpose of these bogos is to deal with the fact that
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
137 the Boyer-Moore and regex searching routines don't know how to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
138 deal with translating multi-byte characters. Fixing this is hard,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
139 so instead we maintain these mirror tables that have all incorrect
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
140 mappings (see casetab.c) sanitized out of them. If we don't do
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
141 this, we may get weird and unpredictable results in the presence
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
142 of extended chars and extended mappings, and it could even lead
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
143 to a crash.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
144
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
145 #### Eventually we should deal with this properly. */
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
146 MARKED_SLOT (mirror_downcase_table);
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
147 MARKED_SLOT (mirror_upcase_table);
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
148 MARKED_SLOT (mirror_case_canon_table);
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
149 MARKED_SLOT (mirror_case_eqv_table);
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
150 #endif
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 0
diff changeset
151
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 /* #### This ought to be a specifier: */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 /* Non-nil means do not display continuation lines. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 MARKED_SLOT (truncate_lines);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 /* #### This ought to be a specifier: */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 /* #### Better yet, it ought to be junked. It really sucks. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 /* Non-nil means display ctl chars with uparrow. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 MARKED_SLOT (ctl_arrow);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 /* #### This ought to be a specifier: */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 /* #### Better yet, it ought to be junked. It really sucks. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 /* Non-nil means do selective display;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 see doc string in syms_of_buffer (buffer.c) for details. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 MARKED_SLOT (selective_display);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 /* #### This ought to be a specifier: */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 /* #### Better yet, it ought to be junked. It really sucks. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 /* Non-nil means show ... at end of line followed by invisible lines. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 MARKED_SLOT (selective_display_ellipses);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 /* Alist of (FUNCTION . STRING) for each minor mode enabled in buffer. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 /* Unused: MARKED_SLOT (minor_modes); */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 /* t if "self-insertion" should overwrite */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 MARKED_SLOT (overwrite_mode);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 /* non-nil means abbrev mode is on. Expand abbrevs automatically. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 MARKED_SLOT (abbrev_mode);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 /* No display table here. It's a specifier. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 #if 0 /* FSFmacs */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 /* t means the mark and region are currently active. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 MARKED_SLOT (mark_active);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 #endif
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 /* Changes in the buffer are recorded here for undo.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 t means don't record anything.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 This information belongs to the base buffer of an indirect buffer,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 But we can't store it in the struct buffer_text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 because local variables have to be right in the struct buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 So we copy it around in set_buffer_internal. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 MARKED_SLOT (undo_list);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 /* FSFmacs has overlay stuff here. We have extent info elsewhere in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 struct buffer. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 /* If dedicated_frame is non-nil, display_buffer tries to use it instead
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 of the current frame */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 MARKED_SLOT (dedicated_frame);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 /* Lisp of symbols naming the file format used for visited file. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 MARKED_SLOT (file_format);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 #ifdef REGION_CACHE_NEEDS_WORK
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 /* True if the newline position cache and width run cache are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 enabled. See search.c and indent.c. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 MARKED_SLOT (cache_long_line_scans);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 /* If the width run cache is enabled, this table contains the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 character widths width_run_cache (see above) assumes. When we
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 do a thorough redisplay, we compare this against the buffer's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 current display table to see whether the display table has
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 affected the widths of any characters. If it has, we
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 invalidate the width run cache, and re-initialize width_table. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 MARKED_SLOT (width_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 #endif /* REGION_CACHE_NEEDS_WORK */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 /* A redundant copy of text.pt, in the form of a marker. Every time one
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 is updated, so is the other.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 MARKED_SLOT (point_marker);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 /* FSFmacs has pt_marker, begv_marker, zv_marker here, used for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 indirect buffers. We don't need them because we handle these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 values directly instead of playing games with markers. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 /* This holds the point value before the last scroll operation.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 Explicitly setting point sets this to nil. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 MARKED_SLOT (point_before_scroll);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 /* Truename of the visited file (via the realpath() system call),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 or nil. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 MARKED_SLOT (file_truename);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 /* Invisibility spec of this buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 t => any non-nil `invisible' property means invisible.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 A list => `invisible' property means invisible
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 if it is memq in that list. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 MARKED_SLOT (invisibility_spec);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 /* The string generated by formatting the modeline in this buffer. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 MARKED_SLOT (generated_modeline_string);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 /* A hash table that maps from a "generic extent" (an extent in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 `modeline-format') into a buffer-specific extent. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 MARKED_SLOT (modeline_extent_table);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 #if 0 /* FSFmacs */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 /* This is silly and stupid */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 /* These are so we don't have to recompile everything
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 the next few times we add a new slot. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 MARKED_SLOT (extra1, extra2, extra3);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 #endif