Mercurial > emacs
changeset 16549:30ddd0e52ace
(combine-after-change-calls): New macro.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 09 Nov 1996 21:46:35 +0000 |
parents | 12915fed5a02 |
children | 158dd5ed6ae8 |
files | lisp/subr.el |
diffstat | 1 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Sat Nov 09 21:36:20 1996 +0000 +++ b/lisp/subr.el Sat Nov 09 21:46:35 1996 +0000 @@ -783,6 +783,24 @@ (prog1 (buffer-string) (kill-buffer nil))))) + +(defmacro combine-after-change-calls (&rest body) + "Execute BODY, but don't call the after-change functions till the end. +If BODY makes changes in the buffer, they are recorded +and the functions on `after-change-functions' are called several times +when BODY is finished. +The return value is rthe value of the last form in BODY. + +If `before-change-functions' is non-nil, then calls to the after-change +functions can't be deferred, so in that case this macro has no effect. + +Do not alter `after-change-functions' or `before-change-functions' +in BODY." + `(unwind-protect + (let ((combine-after-change-calls t)) + . ,body) + (combine-after-change-execute))) + (defvar save-match-data-internal)