Mercurial > hg > xemacs-beta
comparison src/extents.h @ 412:697ef44129c6 r21-2-14
Import from CVS: tag r21-2-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:20:41 +0200 |
parents | b8cc9ab3f761 |
children | 11054d720c21 |
comparison
equal
deleted
inserted
replaced
411:12e008d41344 | 412:697ef44129c6 |
---|---|
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
19 Boston, MA 02111-1307, USA. */ | 19 Boston, MA 02111-1307, USA. */ |
20 | 20 |
21 /* Synched up with: Not in FSF. */ | 21 /* Synched up with: Not in FSF. */ |
22 | 22 |
23 #ifndef INCLUDED_extents_h_ | 23 #ifndef _XEMACS_EXTENTS_H_ |
24 #define INCLUDED_extents_h_ | 24 #define _XEMACS_EXTENTS_H_ |
25 | 25 |
26 DECLARE_LRECORD (extent, struct extent); | 26 DECLARE_LRECORD (extent, struct extent); |
27 #define XEXTENT(x) XRECORD (x, extent, struct extent) | 27 #define XEXTENT(x) XRECORD (x, extent, struct extent) |
28 #define XSETEXTENT(x, p) XSETRECORD (x, p, extent) | 28 #define XSETEXTENT(x, p) XSETRECORD (x, p, extent) |
29 #define EXTENTP(x) RECORDP (x, extent) | 29 #define EXTENTP(x) RECORDP (x, extent) |
30 #define GC_EXTENTP(x) GC_RECORDP (x, extent) | |
30 #define CHECK_EXTENT(x) CHECK_RECORD (x, extent) | 31 #define CHECK_EXTENT(x) CHECK_RECORD (x, extent) |
31 #define CONCHECK_EXTENT(x) CONCHECK_RECORD (x, extent) | 32 #define CONCHECK_EXTENT(x) CONCHECK_RECORD (x, extent) |
32 | 33 |
33 /* the layouts for glyphs (extent->flags.glyph_layout). Must fit in 2 bits. */ | 34 /* the layouts for glyphs (extent->flags.glyph_layout). Must fit in 2 bits. */ |
34 typedef enum glyph_layout | 35 typedef enum glyph_layout |
144 DECLARE_LRECORD (extent_auxiliary, struct extent_auxiliary); | 145 DECLARE_LRECORD (extent_auxiliary, struct extent_auxiliary); |
145 #define XEXTENT_AUXILIARY(x) \ | 146 #define XEXTENT_AUXILIARY(x) \ |
146 XRECORD (x, extent_auxiliary, struct extent_auxiliary) | 147 XRECORD (x, extent_auxiliary, struct extent_auxiliary) |
147 #define XSETEXTENT_AUXILIARY(x, p) XSETRECORD (x, p, extent_auxiliary) | 148 #define XSETEXTENT_AUXILIARY(x, p) XSETRECORD (x, p, extent_auxiliary) |
148 #define EXTENT_AUXILIARYP(x) RECORDP (x, extent_auxiliary) | 149 #define EXTENT_AUXILIARYP(x) RECORDP (x, extent_auxiliary) |
150 #define GC_EXTENT_AUXILIARYP(x) GC_RECORDP (x, extent_auxiliary) | |
149 #define CHECK_EXTENT_AUXILIARY(x) CHECK_RECORD (x, extent_auxiliary) | 151 #define CHECK_EXTENT_AUXILIARY(x) CHECK_RECORD (x, extent_auxiliary) |
150 #define CONCHECK_EXTENT_AUXILIARY(x) CONCHECK_RECORD (x, extent_auxiliary) | 152 #define CONCHECK_EXTENT_AUXILIARY(x) CONCHECK_RECORD (x, extent_auxiliary) |
151 | 153 |
152 struct extent_info | 154 struct extent_info |
153 { | 155 { |
159 | 161 |
160 DECLARE_LRECORD (extent_info, struct extent_info); | 162 DECLARE_LRECORD (extent_info, struct extent_info); |
161 #define XEXTENT_INFO(x) XRECORD (x, extent_info, struct extent_info) | 163 #define XEXTENT_INFO(x) XRECORD (x, extent_info, struct extent_info) |
162 #define XSETEXTENT_INFO(x, p) XSETRECORD (x, p, extent_info) | 164 #define XSETEXTENT_INFO(x, p) XSETRECORD (x, p, extent_info) |
163 #define EXTENT_INFOP(x) RECORDP (x, extent_info) | 165 #define EXTENT_INFOP(x) RECORDP (x, extent_info) |
166 #define GC_EXTENT_INFOP(x) GC_RECORDP (x, extent_info) | |
164 #define CHECK_EXTENT_INFO(x) CHECK_RECORD (x, extent_info) | 167 #define CHECK_EXTENT_INFO(x) CHECK_RECORD (x, extent_info) |
165 #define CONCHECK_EXTENT_INFO(x) CONCHECK_RECORD (x, extent_info) | 168 #define CONCHECK_EXTENT_INFO(x) CONCHECK_RECORD (x, extent_info) |
166 | 169 |
167 void flush_cached_extent_info (Lisp_Object extent_info); | 170 void flush_cached_extent_info (Lisp_Object extent_info); |
168 | 171 |
175 only be used on extents known not to have a parent. The other | 178 only be used on extents known not to have a parent. The other |
176 versions chase down any parent links. */ | 179 versions chase down any parent links. */ |
177 | 180 |
178 #define extent_no_chase_normal_field(e, field) ((e)->flags.field) | 181 #define extent_no_chase_normal_field(e, field) ((e)->flags.field) |
179 | 182 |
180 INLINE_HEADER struct extent_auxiliary *extent_aux_or_default (EXTENT e); | 183 INLINE struct extent_auxiliary *extent_aux_or_default (EXTENT e); |
181 INLINE_HEADER struct extent_auxiliary * | 184 INLINE struct extent_auxiliary * |
182 extent_aux_or_default (EXTENT e) | 185 extent_aux_or_default (EXTENT e) |
183 { | 186 { |
184 return e->flags.has_aux ? | 187 return e->flags.has_aux ? |
185 XEXTENT_AUXILIARY (XCAR (e->plist)) : | 188 XEXTENT_AUXILIARY (XCAR (e->plist)) : |
186 & extent_auxiliary_defaults; | 189 & extent_auxiliary_defaults; |
257 #define extent_duplicable_p(e) extent_normal_field (e, duplicable) | 260 #define extent_duplicable_p(e) extent_normal_field (e, duplicable) |
258 #define extent_detachable_p(e) extent_normal_field (e, detachable) | 261 #define extent_detachable_p(e) extent_normal_field (e, detachable) |
259 #define extent_internal_p(e) extent_normal_field (e, internal) | 262 #define extent_internal_p(e) extent_normal_field (e, internal) |
260 #define extent_in_red_event_p(e) extent_normal_field (e, in_red_event) | 263 #define extent_in_red_event_p(e) extent_normal_field (e, in_red_event) |
261 | 264 |
262 INLINE_HEADER Lisp_Object * extent_no_chase_plist_addr (EXTENT e); | 265 INLINE Lisp_Object * extent_no_chase_plist_addr (EXTENT e); |
263 INLINE_HEADER Lisp_Object * | 266 INLINE Lisp_Object * |
264 extent_no_chase_plist_addr (EXTENT e) | 267 extent_no_chase_plist_addr (EXTENT e) |
265 { | 268 { |
266 return e->flags.has_aux ? &XCDR (e->plist) : &e->plist; | 269 return e->flags.has_aux ? &XCDR (e->plist) : &e->plist; |
267 } | 270 } |
268 | 271 |
316 EXFUN (Fprevious_single_property_change, 4); | 319 EXFUN (Fprevious_single_property_change, 4); |
317 EXFUN (Fset_extent_endpoints, 4); | 320 EXFUN (Fset_extent_endpoints, 4); |
318 EXFUN (Fset_extent_parent, 2); | 321 EXFUN (Fset_extent_parent, 2); |
319 | 322 |
320 extern int inside_undo; | 323 extern int inside_undo; |
321 extern int in_modeline_generation; | |
322 | 324 |
323 struct extent_fragment *extent_fragment_new (Lisp_Object buffer_or_string, | 325 struct extent_fragment *extent_fragment_new (Lisp_Object buffer_or_string, |
324 struct frame *frm); | 326 struct frame *frm); |
325 face_index extent_fragment_update (struct window *w, | 327 face_index extent_fragment_update (struct window *w, |
326 struct extent_fragment *ef, | 328 struct extent_fragment *ef, |
338 EXTENT extent_ancestor_1 (EXTENT e); | 340 EXTENT extent_ancestor_1 (EXTENT e); |
339 | 341 |
340 /* extent_ancestor() chases all the parent links until there aren't any | 342 /* extent_ancestor() chases all the parent links until there aren't any |
341 more. extent_ancestor_1() does the same thing but it a function; | 343 more. extent_ancestor_1() does the same thing but it a function; |
342 the following optimizes the most common case. */ | 344 the following optimizes the most common case. */ |
343 INLINE_HEADER EXTENT extent_ancestor (EXTENT e); | 345 INLINE EXTENT extent_ancestor (EXTENT e); |
344 INLINE_HEADER EXTENT | 346 INLINE EXTENT |
345 extent_ancestor (EXTENT e) | 347 extent_ancestor (EXTENT e) |
346 { | 348 { |
347 return e->flags.has_parent ? extent_ancestor_1 (e) : e; | 349 return e->flags.has_parent ? extent_ancestor_1 (e) : e; |
348 } | 350 } |
349 | 351 |
366 Lisp_Object inhibit_read_only_value); | 368 Lisp_Object inhibit_read_only_value); |
367 void process_extents_for_insertion (Lisp_Object object, | 369 void process_extents_for_insertion (Lisp_Object object, |
368 Bytind opoint, Bytecount length); | 370 Bytind opoint, Bytecount length); |
369 void process_extents_for_deletion (Lisp_Object object, Bytind from, | 371 void process_extents_for_deletion (Lisp_Object object, Bytind from, |
370 Bytind to, int destroy_them); | 372 Bytind to, int destroy_them); |
371 void report_extent_modification (Lisp_Object, Bufpos, Bufpos, int); | 373 void report_extent_modification (Lisp_Object, Bufpos, Bufpos, int *, int); |
372 | 374 |
373 void set_extent_glyph (EXTENT extent, Lisp_Object glyph, int endp, | 375 void set_extent_glyph (EXTENT extent, Lisp_Object glyph, int endp, |
374 glyph_layout layout); | 376 glyph_layout layout); |
375 | 377 |
376 void add_string_extents (Lisp_Object string, struct buffer *buf, | 378 void add_string_extents (Lisp_Object string, struct buffer *buf, |
396 struct overhead_stats *ovstats); | 398 struct overhead_stats *ovstats); |
397 #endif | 399 #endif |
398 | 400 |
399 #endif /* emacs */ | 401 #endif /* emacs */ |
400 | 402 |
401 #endif /* INCLUDED_extents_h_ */ | 403 #endif /* _XEMACS_EXTENTS_H_ */ |