comparison src/extents.h @ 373:6240c7796c7a r21-2b2

Import from CVS: tag r21-2b2
author cvs
date Mon, 13 Aug 2007 11:04:06 +0200
parents c5d627a313b1
children 8626e4521993
comparison
equal deleted inserted replaced
372:49e1ed2d7ed8 373:6240c7796c7a
80 /* 4 text, margins, or whitespace */ 80 /* 4 text, margins, or whitespace */
81 unsigned int has_parent :1; /* 5 extent has a parent */ 81 unsigned int has_parent :1; /* 5 extent has a parent */
82 unsigned int has_aux :1; /* 6 extent has an aux. structure */ 82 unsigned int has_aux :1; /* 6 extent has an aux. structure */
83 unsigned int start_open :1; /* 7 insertion behavior at start */ 83 unsigned int start_open :1; /* 7 insertion behavior at start */
84 unsigned int end_open :1; /* 8 insertion behavior at end */ 84 unsigned int end_open :1; /* 8 insertion behavior at end */
85 unsigned int unused9 :1; /* 9 unused */ 85 unsigned int unique :1; /* 9 there may be only one attached */
86 unsigned int unique :1; /* 10 there may be only one attached */ 86 unsigned int duplicable :1; /* 10 copied to strings by kill/undo */
87 unsigned int duplicable :1; /* 11 copied to strings by kill/undo */ 87 unsigned int detachable :1; /* 11 extent detaches if text deleted */
88 unsigned int REPLICATING :1; /* 12 invoke old extent-replica behav.*/ 88 unsigned int internal :1; /* 12 used by map-extents etc. */
89 /* Not used any more */ 89 unsigned int in_red_event :1; /* 13 An event has been spawned for
90 unsigned int detachable :1; /* 13 extent detaches if text deleted */
91 unsigned int internal :1; /* 14 used by map-extents etc. */
92 unsigned int in_red_event :1; /* 15 An event has been spawned for
93 initial redisplay. 90 initial redisplay.
94 Not exported to the lisp level */ 91 (not exported to lisp) */
95 unsigned int unused16 :1; /* 16 unused */ 92 unsigned int unused16 :1; /* 16 unused bits */
96 /* --- Adding more flags will cause the extent struct to grow by another 93 /* --- Adding more flags will cause the extent struct to grow by another
97 word. It's not clear that this would make a difference, however, 94 word. It's not clear that this would make a difference, however,
98 because on 32-bit machines things tend to get allocated in chunks 95 because on 32-bit machines things tend to get allocated in chunks
99 of 4 bytes. */ 96 of 4 bytes. */
100 } flags; 97 } flags;
137 Lisp_Object children; 134 Lisp_Object children;
138 Lisp_Object invisible; 135 Lisp_Object invisible;
139 Lisp_Object read_only; 136 Lisp_Object read_only;
140 Lisp_Object mouse_face; 137 Lisp_Object mouse_face;
141 Lisp_Object initial_redisplay_function; 138 Lisp_Object initial_redisplay_function;
139 Lisp_Object before_change_functions, after_change_functions;
142 int priority; 140 int priority;
143 }; 141 };
144 142
145 extern struct extent_auxiliary extent_auxiliary_defaults; 143 extern struct extent_auxiliary extent_auxiliary_defaults;
146 144
228 #define extent_priority(e) extent_aux_field (e, priority) 226 #define extent_priority(e) extent_aux_field (e, priority)
229 #define extent_invisible(e) extent_aux_field (e, invisible) 227 #define extent_invisible(e) extent_aux_field (e, invisible)
230 #define extent_read_only(e) extent_aux_field (e, read_only) 228 #define extent_read_only(e) extent_aux_field (e, read_only)
231 #define extent_mouse_face(e) extent_aux_field (e, mouse_face) 229 #define extent_mouse_face(e) extent_aux_field (e, mouse_face)
232 #define extent_initial_redisplay_function(e) extent_aux_field (e, initial_redisplay_function) 230 #define extent_initial_redisplay_function(e) extent_aux_field (e, initial_redisplay_function)
231 #define extent_before_change_functions(e) extent_aux_field (e, before_change_functions)
232 #define extent_after_change_functions(e) extent_aux_field (e, after_change_functions)
233 233
234 #define set_extent_begin_glyph(e, value) \ 234 #define set_extent_begin_glyph(e, value) \
235 set_extent_aux_field (e, begin_glyph, value) 235 set_extent_aux_field (e, begin_glyph, value)
236 #define set_extent_end_glyph(e, value) \ 236 #define set_extent_end_glyph(e, value) \
237 set_extent_aux_field (e, end_glyph, value) 237 set_extent_aux_field (e, end_glyph, value)
244 #define set_extent_mouse_face(e, value) \ 244 #define set_extent_mouse_face(e, value) \
245 set_extent_aux_field (e, mouse_face, value) 245 set_extent_aux_field (e, mouse_face, value)
246 /* Use Fset_extent_initial_redisplay_function unless you know what you're doing */ 246 /* Use Fset_extent_initial_redisplay_function unless you know what you're doing */
247 #define set_extent_initial_redisplay_function(e, value) \ 247 #define set_extent_initial_redisplay_function(e, value) \
248 set_extent_aux_field (e, initial_redisplay_function, value) 248 set_extent_aux_field (e, initial_redisplay_function, value)
249 #define set_extent_before_change_functions(e, value) \
250 set_extent_aux_field (e, before_change_functions, value)
251 #define set_extent_after_change_functions(e, value) \
252 set_extent_aux_field (e, after_change_functions, value)
249 253
250 #define extent_face(e) extent_normal_field (e, face) 254 #define extent_face(e) extent_normal_field (e, face)
251 #define extent_begin_glyph_layout(e) extent_normal_field (e, begin_glyph_layout) 255 #define extent_begin_glyph_layout(e) extent_normal_field (e, begin_glyph_layout)
252 #define extent_end_glyph_layout(e) extent_normal_field (e, end_glyph_layout) 256 #define extent_end_glyph_layout(e) extent_normal_field (e, end_glyph_layout)
253 #define extent_start_open_p(e) extent_normal_field (e, start_open) 257 #define extent_start_open_p(e) extent_normal_field (e, start_open)
364 Lisp_Object inhibit_read_only_value); 368 Lisp_Object inhibit_read_only_value);
365 void process_extents_for_insertion (Lisp_Object object, 369 void process_extents_for_insertion (Lisp_Object object,
366 Bytind opoint, Bytecount length); 370 Bytind opoint, Bytecount length);
367 void process_extents_for_deletion (Lisp_Object object, Bytind from, 371 void process_extents_for_deletion (Lisp_Object object, Bytind from,
368 Bytind to, int destroy_them); 372 Bytind to, int destroy_them);
373 void report_extent_modification (Lisp_Object, Bufpos, Bufpos, int *, int);
369 374
370 void set_extent_glyph (EXTENT extent, Lisp_Object glyph, int endp, 375 void set_extent_glyph (EXTENT extent, Lisp_Object glyph, int endp,
371 glyph_layout layout); 376 glyph_layout layout);
372 377
373 void add_string_extents (Lisp_Object string, struct buffer *buf, 378 void add_string_extents (Lisp_Object string, struct buffer *buf,