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