diff options
| author | Dmitry Antipov | 2012-08-08 18:47:11 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2012-08-08 18:47:11 +0400 |
| commit | 4cb3e6b38ac6c50279474db0e87a52253af52f59 (patch) | |
| tree | 3a4af4b3aa9291bea206fd76f729a2bda4c93c58 /src/buffer.h | |
| parent | d9f9b465414c4c345574d9f179808380751c070e (diff) | |
| download | emacs-4cb3e6b38ac6c50279474db0e87a52253af52f59.tar.gz emacs-4cb3e6b38ac6c50279474db0e87a52253af52f59.zip | |
Inline functions to examine and change buffer overlays.
* buffer.c (unchain_both): New function.
* buffer.h (buffer_get_overlays, buffer_set_overlays):
(buffer_has_overlays): New function.
(enum overlay_type): New enum.
* alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
* insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
Diffstat (limited to 'src/buffer.h')
| -rw-r--r-- | src/buffer.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h index 986df8e6d32..a52ca7193e4 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -945,6 +945,52 @@ extern void mmap_set_vars (int); | |||
| 945 | } \ | 945 | } \ |
| 946 | } while (0) | 946 | } while (0) |
| 947 | 947 | ||
| 948 | enum overlay_type | ||
| 949 | { | ||
| 950 | OV_BEFORE, | ||
| 951 | OV_AFTER | ||
| 952 | }; | ||
| 953 | |||
| 954 | /* Get overlay list of type T and belonging to B. */ | ||
| 955 | |||
| 956 | BUFFER_INLINE struct Lisp_Overlay * | ||
| 957 | buffer_get_overlays (struct buffer *b, enum overlay_type t) | ||
| 958 | { | ||
| 959 | if (!b) | ||
| 960 | b = current_buffer; | ||
| 961 | if (t == OV_BEFORE) | ||
| 962 | return b->overlays_before; | ||
| 963 | else if (t == OV_AFTER) | ||
| 964 | return b->overlays_after; | ||
| 965 | else | ||
| 966 | abort (); | ||
| 967 | } | ||
| 968 | |||
| 969 | /* Set overlay list of type T as belonging to B. */ | ||
| 970 | |||
| 971 | BUFFER_INLINE void | ||
| 972 | buffer_set_overlays (struct buffer *b, struct Lisp_Overlay *o, | ||
| 973 | enum overlay_type t) | ||
| 974 | { | ||
| 975 | if (!b) | ||
| 976 | b = current_buffer; | ||
| 977 | if (t == OV_BEFORE) | ||
| 978 | b->overlays_before = o; | ||
| 979 | else if (t == OV_AFTER) | ||
| 980 | b->overlays_after = o; | ||
| 981 | else | ||
| 982 | abort (); | ||
| 983 | } | ||
| 984 | |||
| 985 | /* Non-zero if current buffer has overlays. */ | ||
| 986 | |||
| 987 | BUFFER_INLINE int | ||
| 988 | buffer_has_overlays (void) | ||
| 989 | { | ||
| 990 | return buffer_get_overlays (current_buffer, OV_BEFORE) | ||
| 991 | || buffer_get_overlays (current_buffer, OV_AFTER); | ||
| 992 | } | ||
| 993 | |||
| 948 | extern Lisp_Object Qbefore_change_functions; | 994 | extern Lisp_Object Qbefore_change_functions; |
| 949 | extern Lisp_Object Qafter_change_functions; | 995 | extern Lisp_Object Qafter_change_functions; |
| 950 | extern Lisp_Object Qfirst_change_hook; | 996 | extern Lisp_Object Qfirst_change_hook; |