X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/2124ec92ffa31ba0a2e7b177f8de2dd6e27ded6d..5932ffcd028af9fc70c9f8e731f2776a9753d81d:/src/region-cache.h
diff --git a/src/region-cache.h b/src/region-cache.h
index 8e1be71677..270531e1a4 100644
--- a/src/region-cache.h
+++ b/src/region-cache.h
@@ -1,14 +1,14 @@
/* 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-2016 Free Software Foundation,
+Inc.
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 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,6 +18,8 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see . */
+#ifndef EMACS_REGION_CACHE_H
+#define EMACS_REGION_CACHE_H
/* This code was written by Jim Blandy to help
GNU Emacs better support the gene editor written for the University
@@ -40,7 +42,7 @@ along with GNU Emacs. If not, see . */
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
@@ -60,6 +62,7 @@ along with GNU Emacs. If not, see . */
this region has property P" vs. "I don't know if this region has
property P or not." */
+struct buffer;
/* Allocate, initialize and return a new, empty region cache. */
struct region_cache *new_region_cache (void);
@@ -89,24 +92,21 @@ extern void invalidate_region_cache (struct buffer *BUF,
/* 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,
- ptrdiff_t POS,
- ptrdiff_t *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,
- ptrdiff_t POS,
- ptrdiff_t *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);
+
+#endif /* EMACS_REGION_CACHE_H */