declare smobs in alloc.c
[bpt/emacs.git] / src / region-cache.h
index ea767ed..4b9d519 100644 (file)
@@ -1,7 +1,7 @@
 /* Header file: Caching facts about regions of the buffer, for optimization.
 
-Copyright (C) 1985-1986, 1993, 1995, 2001-2011
-  Free Software Foundation, Inc.
+Copyright (C) 1985-1986, 1993, 1995, 2001-2014 Free Software Foundation,
+Inc.
 
 This file is part of GNU Emacs.
 
@@ -40,7 +40,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    existing data structure, and disturb as little of the existing code
    as possible.
 
-   So here's the tack.  We add some caching to the scan_buffer
+   So here's the tack.  We add some caching to the find_newline
    function, so that when it searches for a newline, it notes that the
    region between the start and end of the search contained no
    newlines; then, the next time around, it consults this cache to see
@@ -72,7 +72,7 @@ void free_region_cache (struct region_cache *);
    no newlines", in the case of the line cache).  */
 extern void know_region_cache (struct buffer *BUF,
                                struct region_cache *CACHE,
-                               EMACS_INT START, EMACS_INT END);
+                               ptrdiff_t START, ptrdiff_t END);
 
 /* Indicate that a section of BUF has changed, to invalidate CACHE.
    HEAD is the number of chars unchanged at the beginning of the buffer.
@@ -84,29 +84,24 @@ extern void know_region_cache (struct buffer *BUF,
    args to pass are the same before and after such an operation.)  */
 extern void invalidate_region_cache (struct buffer *BUF,
                                      struct region_cache *CACHE,
-                                     EMACS_INT HEAD, EMACS_INT TAIL);
+                                     ptrdiff_t HEAD, ptrdiff_t TAIL);
 
 /* The scanning functions.
 
    Basically, if you're scanning forward/backward from position POS,
-   and region_cache_forward/backward returns true, you can skip all
-   the text between POS and *NEXT.  And if the function returns false,
+   and region_cache_forward/backward returns nonzero, you can skip all
+   the text between POS and *NEXT.  And if the function returns zero,
    you should examine all the text from POS to *NEXT, and call
    know_region_cache depending on what you find there; this way, you
    might be able to avoid scanning it again.  */
 
-/* Return true if the text immediately after POS in BUF is known, for
-   the purposes of CACHE.  If NEXT is non-zero, set *NEXT to the nearest
-   position after POS where the knownness changes.  */
-extern int region_cache_forward (struct buffer *BUF,
-                                 struct region_cache *CACHE,
-                                 EMACS_INT POS,
-                                 EMACS_INT *NEXT);
-
-/* Return true if the text immediately before POS in BUF is known, for
-   the purposes of CACHE.  If NEXT is non-zero, set *NEXT to the nearest
-   position before POS where the knownness changes.  */
-extern int region_cache_backward (struct buffer *BUF,
-                                  struct region_cache *CACHE,
-                                  EMACS_INT POS,
-                                  EMACS_INT *NEXT);
+/* Return the value for the text immediately after POS in BUF if the value
+   is known, for the purposes of CACHE, and return zero otherwise.
+   If NEXT is non-zero, set *NEXT to the nearest
+   position after POS where the knowledge changes.  */
+extern int region_cache_forward (struct buffer *buf, struct region_cache *c,
+                                ptrdiff_t pos, ptrdiff_t *next);
+
+/* Likewise, except before POS rather than after POS.  */
+extern int region_cache_backward (struct buffer *buf, struct region_cache *c,
+                                 ptrdiff_t pos, ptrdiff_t *next);