/* Synched up with: Not in FSF. */
-#ifndef _XEMACS_EXTENTS_H_
-#define _XEMACS_EXTENTS_H_
+#ifndef INCLUDED_extents_h_
+#define INCLUDED_extents_h_
DECLARE_LRECORD (extent, struct extent);
#define XEXTENT(x) XRECORD (x, extent, struct extent)
#define XSETEXTENT(x, p) XSETRECORD (x, p, extent)
#define EXTENTP(x) RECORDP (x, extent)
-#define GC_EXTENTP(x) GC_RECORDP (x, extent)
#define CHECK_EXTENT(x) CHECK_RECORD (x, extent)
#define CONCHECK_EXTENT(x) CONCHECK_RECORD (x, extent)
#define extent_object(e) ((e)->object)
#define extent_start(e) ((e)->start + 0)
#define extent_end(e) ((e)->end + 0)
-#define set_extent_start(e, val) ((e)->start = (val))
-#define set_extent_end(e, val) ((e)->end = (val))
+#define set_extent_start(e, val) ((void) ((e)->start = (val)))
+#define set_extent_end(e, val) ((void) ((e)->end = (val)))
#define extent_endpoint(e, endp) ((endp) ? extent_end (e) : extent_start (e))
#define set_extent_endpoint(e, val, endp) \
((endp) ? set_extent_end (e, val) : set_extent_start (e, val))
XRECORD (x, extent_auxiliary, struct extent_auxiliary)
#define XSETEXTENT_AUXILIARY(x, p) XSETRECORD (x, p, extent_auxiliary)
#define EXTENT_AUXILIARYP(x) RECORDP (x, extent_auxiliary)
-#define GC_EXTENT_AUXILIARYP(x) GC_RECORDP (x, extent_auxiliary)
#define CHECK_EXTENT_AUXILIARY(x) CHECK_RECORD (x, extent_auxiliary)
#define CONCHECK_EXTENT_AUXILIARY(x) CONCHECK_RECORD (x, extent_auxiliary)
#define XEXTENT_INFO(x) XRECORD (x, extent_info, struct extent_info)
#define XSETEXTENT_INFO(x, p) XSETRECORD (x, p, extent_info)
#define EXTENT_INFOP(x) RECORDP (x, extent_info)
-#define GC_EXTENT_INFOP(x) GC_RECORDP (x, extent_info)
#define CHECK_EXTENT_INFO(x) CHECK_RECORD (x, extent_info)
#define CONCHECK_EXTENT_INFO(x) CONCHECK_RECORD (x, extent_info)
#define extent_no_chase_normal_field(e, field) ((e)->flags.field)
-INLINE struct extent_auxiliary *extent_aux_or_default (EXTENT e);
-INLINE struct extent_auxiliary *
+INLINE_HEADER struct extent_auxiliary *extent_aux_or_default (EXTENT e);
+INLINE_HEADER struct extent_auxiliary *
extent_aux_or_default (EXTENT e)
{
return e->flags.has_aux ?
#define extent_internal_p(e) extent_normal_field (e, internal)
#define extent_in_red_event_p(e) extent_normal_field (e, in_red_event)
-INLINE Lisp_Object * extent_no_chase_plist_addr (EXTENT e);
-INLINE Lisp_Object *
+INLINE_HEADER Lisp_Object * extent_no_chase_plist_addr (EXTENT e);
+INLINE_HEADER Lisp_Object *
extent_no_chase_plist_addr (EXTENT e)
{
return e->flags.has_aux ? &XCDR (e->plist) : &e->plist;
EXFUN (Fmake_extent, 3);
EXFUN (Fprevious_single_property_change, 4);
EXFUN (Fset_extent_endpoints, 4);
+EXFUN (Fnext_extent_change, 2);
+EXFUN (Fprevious_extent_change, 2);
EXFUN (Fset_extent_parent, 2);
+EXFUN (Fget_char_property, 4);
extern int inside_undo;
+extern int in_modeline_generation;
struct extent_fragment *extent_fragment_new (Lisp_Object buffer_or_string,
struct frame *frm);
/* extent_ancestor() chases all the parent links until there aren't any
more. extent_ancestor_1() does the same thing but it a function;
the following optimizes the most common case. */
-INLINE EXTENT extent_ancestor (EXTENT e);
-INLINE EXTENT
+INLINE_HEADER EXTENT extent_ancestor (EXTENT e);
+INLINE_HEADER EXTENT
extent_ancestor (EXTENT e)
{
return e->flags.has_parent ? extent_ancestor_1 (e) : e;
Bytind opoint, Bytecount length);
void process_extents_for_deletion (Lisp_Object object, Bytind from,
Bytind to, int destroy_them);
-void report_extent_modification (Lisp_Object, Bufpos, Bufpos, int *, int);
+void report_extent_modification (Lisp_Object, Bufpos, Bufpos, int);
void set_extent_glyph (EXTENT extent, Lisp_Object glyph, int endp,
glyph_layout layout);
#endif /* emacs */
-#endif /* _XEMACS_EXTENTS_H_ */
+#endif /* INCLUDED_extents_h_ */