1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-24 10:38:38 +00:00

(buffer-swapped-with): New var, moved from files.el. Add advice to

basic-save-buffer to use it.
This commit is contained in:
Chong Yidong 2008-12-31 02:44:00 +00:00
parent 9b854b5c5e
commit aae1ecbbc8

View File

@ -41,6 +41,34 @@
(require 'mail-utils)
(eval-when-compile (require 'mule-util)) ; for detect-coding-with-priority
;; The buffer-swapped-with feature has been moved here temporarily.
;; When pmail is merged, this advice must be eliminated and the
;; functionality somehow reimplemented.
(defvar buffer-swapped-with nil
"Buffer that this buffer's contents are temporarily swapped with.
You should only set this variable in file-visiting buffers,
because it only affects how to save the buffer in its file.")
(make-variable-buffer-local 'buffer-swapped-with)
(defadvice basic-save-buffer
(around check-swap activate)
"If this buffer's real contents are swapped with some other buffer,
temporarily unswap in order to save the real contents. This
advice is temporarily used by pmail until a satisfactory solution
can be written."
(if (not buffer-swapped-with)
ad-do-it
(unwind-protect
(let ((modp (buffer-modified-p)))
(buffer-swap-text buffer-swapped-with)
(set-buffer-modified-p modp)
ad-do-it)
(buffer-swap-text buffer-swapped-with)
(set-buffer-modified-p nil))))
(defconst pmail-attribute-header "X-RMAIL-ATTRIBUTES"
"The header that stores the Pmail attribute data.")