(Fsplit_window): Treat width just like height;
[bpt/emacs.git] / src / buffer.h
index c19e4f3..fafe6ec 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.
 
@@ -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
@@ -226,6 +227,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 +309,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 +361,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;
@@ -389,6 +397,16 @@ struct buffer
 
     /* 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;
+
+    /* 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.  */
@@ -455,6 +473,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;
@@ -462,6 +481,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;