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

(tar-mode): Set write-contents-functions instead of

write-region-annotate-functions.
(tar-mode-write-contents): New function.
(tar-write-region-annotate): Remove.
This commit is contained in:
Andreas Schwab 2008-12-31 09:58:49 +00:00
parent aae1ecbbc8
commit d00da9d723
2 changed files with 20 additions and 10 deletions

View File

@ -1,3 +1,10 @@
2008-12-31 Andreas Schwab <schwab@suse.de>
* tar-mode.el (tar-mode): Set write-contents-functions instead of
write-region-annotate-functions.
(tar-mode-write-contents): New function.
(tar-write-region-annotate): Remove.
2008-12-31 Chong Yidong <cyd@stupidchicken.com>
* files.el (basic-save-buffer): Revert 2008-12-22 change.

View File

@ -637,7 +637,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
;; buffer for the summary.
(assert (not (tar-data-swapped-p)))
(set (make-local-variable 'revert-buffer-function) 'tar-mode-revert)
(add-hook 'write-region-annotate-functions 'tar-write-region-annotate nil t)
(add-hook 'write-contents-functions 'tar-mode-write-contents nil t)
(add-hook 'kill-buffer-hook 'tar-mode-kill-buffer-hook nil t)
(add-hook 'change-major-mode-hook 'tar-change-major-mode-hook nil t)
;; Tar data is made of bytes, not chars.
@ -1213,15 +1213,18 @@ Leaves the region wide."
(insert (make-string (- goal-end (point-max)) ?\0))))))))
;; Used in write-region-annotate-functions to write tar-files out correctly.
(defun tar-write-region-annotate (start end)
;; When called from write-file (and auto-save), `start' is nil.
;; When called from M-x write-region, we assume the user wants to save
;; (part of) the summary, not the tar data.
(unless (or start (not (tar-data-swapped-p)))
(tar-clear-modification-flags)
(set-buffer tar-data-buffer)
nil))
;; Used in write-contents-functions to write tar-files out correctly.
(defun tar-mode-write-contents ()
(save-excursion
(unwind-protect
(progn
(when (tar-data-swapped-p) (tar-swap-data))
(write-region nil nil buffer-file-name nil t))
(unless (tar-data-swapped-p) (tar-swap-data))))
(tar-clear-modification-flags)
(set-buffer-modified-p nil)
;; Return t because we've written the file.
t)
(provide 'tar-mode)