/* 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.
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
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.
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);