summaryrefslogtreecommitdiff
path: root/src/buffer.h
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2012-07-19 12:56:53 +0400
committerDmitry Antipov <dmantipov@yandex.ru>2012-07-19 12:56:53 +0400
commit9cd47b72e021f76a6e2481d986ce4b0cb0b859d3 (patch)
tree73912e8be2147fe90acf8f5dd20bb1c238d354df /src/buffer.h
parent1d6fc0df363db43f2c1db696fad40f068287500b (diff)
downloademacs-9cd47b72e021f76a6e2481d986ce4b0cb0b859d3.tar.gz
Compact buffers when idle.
* lisp/compact.el: New file. * src/buffer.c (compact_buffer, Fcompact_buffer): New function. (syms_of_buffer): Register Fcompact_buffer. * src/alloc.c (Fgarbage_collect): Use compact_buffer. * src/buffer.h (compact_buffer): New prototype. (struct buffer_text): New member.
Diffstat (limited to 'src/buffer.h')
-rw-r--r--src/buffer.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h
index 8c596835fcc..6f090479a24 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -436,6 +436,9 @@ struct buffer_text
EMACS_INT overlay_modiff; /* Counts modifications to overlays. */
+ EMACS_INT compact; /* Set to modiff each time when compact_buffer
+ is called for this buffer. */
+
/* Minimum value of GPT - BEG since last redisplay that finished. */
ptrdiff_t beg_unchanged;
@@ -903,6 +906,7 @@ extern struct buffer buffer_local_symbols;
extern void delete_all_overlays (struct buffer *);
extern void reset_buffer (struct buffer *);
+extern int compact_buffer (struct buffer *);
extern void evaporate_overlays (ptrdiff_t);
extern ptrdiff_t overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr,
ptrdiff_t *len_ptr, ptrdiff_t *next_ptr,