aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1994-04-25 18:26:20 +0000
committerKarl Heuer1994-04-25 18:26:20 +0000
commit6a608e8ebf03dcb873fbe3002e1c6f3402c52b4a (patch)
tree42ec436b413987ddef40751777af0fbf8f8a7e50
parentbacafaf1e7aebc4d8fb3d029a3078768774f3d40 (diff)
downloademacs-6a608e8ebf03dcb873fbe3002e1c6f3402c52b4a.tar.gz
emacs-6a608e8ebf03dcb873fbe3002e1c6f3402c52b4a.zip
(tar-copy): Don't bother with a temp buffer.
-rw-r--r--lisp/tar-mode.el21
1 files changed, 4 insertions, 17 deletions
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 00fff38487b..b1edbe0375b 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -749,23 +749,10 @@ the current tar-entry."
749 (size (tar-header-size tokens)) 749 (size (tar-header-size tokens))
750 (start (+ (tar-desc-data-start descriptor) tar-header-offset -1)) 750 (start (+ (tar-desc-data-start descriptor) tar-header-offset -1))
751 (end (+ start size))) 751 (end (+ start size)))
752 (let* ((tar-buffer (current-buffer)) 752 (save-restriction
753 buffer) 753 (widen)
754 (unwind-protect 754 (write-region start end to-file))
755 (progn 755 (message "Copied tar entry %s to %s" name to-file)))
756 (setq buffer (generate-new-buffer "*tar-copy-tmp*"))
757 (widen)
758 (save-excursion
759 (set-buffer buffer)
760 (insert-buffer-substring tar-buffer start end)
761 (set-buffer-modified-p nil) ; in case we abort
762 (write-file to-file)
763 (message "Copied tar entry %s to %s" name to-file)
764 (set-buffer tar-buffer)))
765 (narrow-to-region 1 tar-header-offset)
766 (if buffer (kill-buffer buffer)))
767 )))
768
769 756
770(defun tar-flag-deleted (p &optional unflag) 757(defun tar-flag-deleted (p &optional unflag)
771 "*In Tar mode, mark this sub-file to be deleted from the tar file. 758 "*In Tar mode, mark this sub-file to be deleted from the tar file.