diff options
| author | Dmitry Antipov | 2012-07-19 12:56:53 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2012-07-19 12:56:53 +0400 |
| commit | 9cd47b72e021f76a6e2481d986ce4b0cb0b859d3 (patch) | |
| tree | 73912e8be2147fe90acf8f5dd20bb1c238d354df /src/buffer.h | |
| parent | 1d6fc0df363db43f2c1db696fad40f068287500b (diff) | |
| download | emacs-9cd47b72e021f76a6e2481d986ce4b0cb0b859d3.tar.gz emacs-9cd47b72e021f76a6e2481d986ce4b0cb0b859d3.zip | |
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.h | 4 |
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 | |||
| 436 | 436 | ||
| 437 | EMACS_INT overlay_modiff; /* Counts modifications to overlays. */ | 437 | EMACS_INT overlay_modiff; /* Counts modifications to overlays. */ |
| 438 | 438 | ||
| 439 | EMACS_INT compact; /* Set to modiff each time when compact_buffer | ||
| 440 | is called for this buffer. */ | ||
| 441 | |||
| 439 | /* Minimum value of GPT - BEG since last redisplay that finished. */ | 442 | /* Minimum value of GPT - BEG since last redisplay that finished. */ |
| 440 | ptrdiff_t beg_unchanged; | 443 | ptrdiff_t beg_unchanged; |
| 441 | 444 | ||
| @@ -903,6 +906,7 @@ extern struct buffer buffer_local_symbols; | |||
| 903 | 906 | ||
| 904 | extern void delete_all_overlays (struct buffer *); | 907 | extern void delete_all_overlays (struct buffer *); |
| 905 | extern void reset_buffer (struct buffer *); | 908 | extern void reset_buffer (struct buffer *); |
| 909 | extern int compact_buffer (struct buffer *); | ||
| 906 | extern void evaporate_overlays (ptrdiff_t); | 910 | extern void evaporate_overlays (ptrdiff_t); |
| 907 | extern ptrdiff_t overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr, | 911 | extern ptrdiff_t overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr, |
| 908 | ptrdiff_t *len_ptr, ptrdiff_t *next_ptr, | 912 | ptrdiff_t *len_ptr, ptrdiff_t *next_ptr, |