1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

(save-buffer-state): Use make-symbol to bind `modified'.

This commit is contained in:
Eli Zaretskii 2002-03-29 13:31:19 +00:00
parent 9ad79cb427
commit 7b7a23f49b

View File

@ -677,14 +677,20 @@ Major/minor modes can set this variable if they know which option applies.")
;; We use this to preserve or protect things when modifying text properties.
(defmacro save-buffer-state (varlist &rest body)
"Bind variables according to VARLIST and eval BODY restoring buffer state."
`(let* ,(append varlist
'((modified (buffer-modified-p)) (buffer-undo-list t)
(inhibit-read-only t) (inhibit-point-motion-hooks t)
(inhibit-modification-hooks t)
deactivate-mark buffer-file-name buffer-file-truename))
,@body
(unless modified
(restore-buffer-modified-p nil))))
(let ((modified (make-symbol "modified")))
`(let* ,(append varlist
'((,modified (buffer-modified-p))
(buffer-undo-list t)
(inhibit-read-only t)
(inhibit-point-motion-hooks t)
(inhibit-modification-hooks t)
deactivate-mark
buffer-file-name
buffer-file-truename))
(progn
,@body)
(unless ,modified
(restore-buffer-modified-p nil)))))
(put 'save-buffer-state 'lisp-indent-function 1)
(def-edebug-spec save-buffer-state let)
;;