]> code.delx.au - gnu-emacs/blobdiff - src/buffer.h
(BITS_PER_CHAR, BITS_PER_INT, BITS_PER_SHORT)
[gnu-emacs] / src / buffer.h
index 76cbf0ba4c03e6b0151075a63635ab17533d918c..9f9eb7043caecf8b61b86e73fe523f2db8567441 100644 (file)
@@ -1,5 +1,5 @@
 /* Header file for the buffer manipulation primitives.
-   Copyright (C) 1985, 1986, 1993, 1994 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1993, 1994, 1995 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -226,6 +226,9 @@ struct buffer
        the last time this buffer was displayed.  */
     int last_window_start;
 
+    /* Set nonzero whenever the narrowing is changed in this buffer.  */
+    int clip_changed;
+
     /* If the long line scan cache is enabled (i.e. the buffer-local
        variable cache-long-line-scans is non-nil), newline_cache
        points to the newline cache, and width_run_cache points to the
@@ -305,13 +308,14 @@ struct buffer
        This value is meaningful only on certain operating systems.  */
     Lisp_Object buffer_file_type;
 
-    /* String of length 256 mapping each char to its lower-case version.  */
+    /* Case table for case-conversion in this buffer.
+       This char-table maps each char into its lower-case version.  */
     Lisp_Object downcase_table;
-    /* String of length 256 mapping each char to its upper-case version.  */
+    /* Char-table mapping each char to its upper-case version.  */
     Lisp_Object upcase_table;
-    /* Translate table for case-folding search.  */
+    /* Char-table for conversion for case-folding search.  */
     Lisp_Object case_canon_table;
-    /* Inverse translate (equivalence class) table for case-folding search.  */
+    /* Char-table of equivalences for case-folding search.  */
     Lisp_Object case_eqv_table;
 
     /* Non-nil means do not display continuation lines.  */
@@ -356,6 +360,9 @@ struct buffer
     /* Position where the overlay lists are centered.  */
     Lisp_Object overlay_center;
 
+    /* Lisp of symbols naming the file format used for visited file. */
+    Lisp_Object file_format;
+
     /* True if the newline position cache and width run cache are
        enabled.  See search.c and indent.c.  */
     Lisp_Object cache_long_line_scans;
@@ -386,6 +393,23 @@ struct buffer
     /* This holds the point value before the last scroll operation.
        Explicitly setting point sets this to nil.  */
     Lisp_Object point_before_scroll;
+
+    /* Truename of the visited file, or nil.  */
+    Lisp_Object file_truename;
+
+    /* Invisibility spec of this buffer.
+       t => any non-nil `invisible' property means invisible.
+       A list => `invisible' property means invisible
+                 if it is memq in that list.  */
+    Lisp_Object invisibility_spec;
+
+    /* If redisplay goes beyond this point in the buffer,
+       run redisplay-end-trigger-hook.  */
+    Lisp_Object redisplay_end_trigger;
+
+    /* These are so we don't have to recompile everything
+       the next few times we add a new slot.  */
+    Lisp_Object extra1, extra2, extra3;
   };
 \f
 /* This points to the current buffer.  */
@@ -452,6 +476,7 @@ extern void evaporate_overlays ();
 extern Lisp_Object Fbuffer_name ();
 extern Lisp_Object Fget_file_buffer ();
 extern Lisp_Object Fnext_overlay_change ();
+extern Lisp_Object Fdelete_overlay ();
 
 /* Functions to call before and after each text change.  */
 extern Lisp_Object Vbefore_change_function;
@@ -459,6 +484,8 @@ extern Lisp_Object Vafter_change_function;
 extern Lisp_Object Vbefore_change_functions;
 extern Lisp_Object Vafter_change_functions;
 extern Lisp_Object Vfirst_change_hook;
+extern Lisp_Object Qbefore_change_functions;
+extern Lisp_Object Qafter_change_functions;
 extern Lisp_Object Qfirst_change_hook;
 
 extern Lisp_Object Vdeactivate_mark;