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