diff options
| -rw-r--r-- | lisp/tar-mode.el | 21 |
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. |