(syms_of_coding): Mention auto-coding-alist in the
[bpt/emacs.git] / src / intervals.h
index f65ddf5..b0b9b0b 100644 (file)
@@ -5,7 +5,7 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
+the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
@@ -15,7 +15,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 #ifdef USE_TEXT_PROPERTIES
 #ifndef NORMAL_FACE
@@ -36,9 +37,15 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 /* True if an interval pointer is null, or is a Lisp_Buffer or
    Lisp_String pointer (meaning it points to the owner of this
    interval tree). */
+#ifdef NO_UNION_TYPE
 #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL           \
                            || BUFFERP ((Lisp_Object)(i)) \
                            || STRINGP ((Lisp_Object)(i)))
+#else
+#define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL           \
+                           || BUFFERP ((Lisp_Object){(EMACS_INT)(i)}) \
+                           || STRINGP ((Lisp_Object){(EMACS_INT)(i)}))
+#endif
 
 /* True if this interval has no right child. */
 #define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL)
@@ -158,6 +165,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
   (! NULL_INTERVAL_P (i) && ! NILP (textget ((i)->plist, Qfront_sticky)))
 #define END_NONSTICKY_P(i) \
   (! NULL_INTERVAL_P (i) && ! NILP (textget ((i)->plist, Qrear_nonsticky)))
+#define FRONT_NONSTICKY_P(i) \
+  (! NULL_INTERVAL_P (i) && ! EQ (Qt, textget ((i)->plist, Qfront_sticky)))
 
 
 /* If PROP is the `invisible' property of a character,
@@ -179,29 +188,44 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Declared in alloc.c */
 
-extern INTERVAL make_interval ();
+extern INTERVAL make_interval P_ ((void));
 
 /* Declared in intervals.c */
 
-extern INTERVAL create_root_interval ();
-extern void copy_properties ();
-extern int intervals_equal ();
-extern void traverse_intervals ();
-extern INTERVAL split_interval_right (), split_interval_left ();
-extern INLINE INTERVAL find_interval ();
-extern INTERVAL next_interval (), previous_interval ();
-extern INTERVAL merge_interval_left (), merge_interval_right ();
-extern void delete_interval ();
-extern INLINE void offset_intervals ();
-extern void graft_intervals_into_buffer ();
-extern void set_point ();
-extern INLINE void temp_set_point ();
-extern void verify_interval_modification ();
-extern INTERVAL balance_intervals ();
-extern INLINE void copy_intervals_to_string ();
-extern INTERVAL copy_intervals ();
-extern Lisp_Object textget ();
-extern Lisp_Object get_local_map ();
+extern INTERVAL create_root_interval P_ ((Lisp_Object));
+extern void copy_properties P_ ((INTERVAL, INTERVAL));
+extern int intervals_equal P_ ((INTERVAL, INTERVAL));
+extern void traverse_intervals P_ ((INTERVAL, int, int,
+                                   void (*) (INTERVAL, Lisp_Object),
+                                   Lisp_Object));
+extern INTERVAL split_interval_right P_ ((INTERVAL, int));
+extern INTERVAL split_interval_left P_ ((INTERVAL, int));
+extern INTERVAL find_interval P_ ((INTERVAL, int));
+extern INTERVAL next_interval P_ ((INTERVAL));
+extern INTERVAL previous_interval P_ ((INTERVAL));
+extern INTERVAL merge_interval_left P_ ((INTERVAL));
+extern INTERVAL merge_interval_right P_ ((INTERVAL));
+extern void delete_interval P_ ((INTERVAL));
+extern INLINE void offset_intervals P_ ((struct buffer *, int, int));
+extern void graft_intervals_into_buffer P_ ((INTERVAL, int, int,
+                                            struct buffer *, int));
+extern void set_point P_ ((struct buffer *, int));
+extern INLINE void temp_set_point P_ ((struct buffer *, int));
+extern void set_point_both P_ ((struct buffer *, int, int));
+extern INLINE void temp_set_point_both P_ ((struct buffer *, int, int));
+extern void verify_interval_modification P_ ((struct buffer *, int, int));
+extern INTERVAL balance_intervals P_ ((INTERVAL));
+extern INLINE void copy_intervals_to_string P_ ((Lisp_Object, struct buffer *,
+                                                int, int));
+extern INTERVAL copy_intervals P_ ((INTERVAL, int, int));
+extern Lisp_Object textget P_ ((Lisp_Object, Lisp_Object));
+extern void move_if_not_intangible P_ ((int));
+extern Lisp_Object get_local_map P_ ((int, struct buffer *));
+extern INTERVAL update_interval P_ ((INTERVAL, int));
+extern void set_intervals_multibyte P_ ((int));
+
+/* Defined in xdisp.c */
+extern int invisible_ellipsis_p P_ ((Lisp_Object, Lisp_Object));
 
 /* Declared in textprop.c */
 
@@ -224,13 +248,19 @@ extern Lisp_Object Vdefault_text_properties;
 /* Sticky properties */
 extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
 
-extern Lisp_Object Fget_char_property (), Fget_text_property ();
-extern Lisp_Object Ftext_properties_at ();
-extern Lisp_Object Fnext_property_change (), Fprevious_property_change ();
-extern Lisp_Object Fadd_text_properties (), Fset_text_properties ();
-extern Lisp_Object Fremove_text_properties (), Ferase_text_properties ();
-extern Lisp_Object Ftext_property_any (), Ftext_property_not_all ();
-extern Lisp_Object copy_text_properties ();
+EXFUN (Fget_char_property, 3);
+EXFUN (Fget_text_property, 3);
+EXFUN (Ftext_properties_at, 2);
+EXFUN (Fnext_property_change, 3);
+EXFUN (Fprevious_property_change, 3);
+EXFUN (Fadd_text_properties, 4);
+EXFUN (Fset_text_properties, 4);
+EXFUN (Fremove_text_properties, 4);
+EXFUN (Ftext_property_any, 5);
+EXFUN (Ftext_property_not_all, 5);
+extern Lisp_Object copy_text_properties P_ ((Lisp_Object, Lisp_Object,
+                                            Lisp_Object, Lisp_Object,
+                                            Lisp_Object, Lisp_Object));
 
 extern void syms_of_textprop ();