[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 2500ab0894: Make `C' in over tramp work in archive mode
From: |
Lars Ingebrigtsen |
Subject: |
master 2500ab0894: Make `C' in over tramp work in archive mode |
Date: |
Sun, 17 Jul 2022 06:13:04 -0400 (EDT) |
branch: master
commit 2500ab089423df818557c5e9426e334dfbec0dbf
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Make `C' in over tramp work in archive mode
* lisp/arc-mode.el (archive-copy-file): Make `C' in over tramp
work (bug#56574).
---
lisp/arc-mode.el | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index dbb8c20209..632ae57852 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1087,11 +1087,17 @@ NEW-NAME."
(let* ((descr (archive-get-descr))
(archive (buffer-file-name))
(extractor (archive-name "extract"))
- (ename (archive--file-desc-ext-file-name descr)))
- (with-temp-buffer
- (set-buffer-multibyte nil)
- (archive--extract-file extractor archive ename)
- (write-region (point-min) (point-max) write-to)))))))
+ (ename (archive--file-desc-ext-file-name descr))
+ ;; If the archive is remote, we have to copy it to a
+ ;; local file first to make extraction work.
+ (copy (archive-maybe-copy archive)))
+ (unwind-protect
+ (with-temp-buffer
+ (set-buffer-multibyte nil)
+ (archive--extract-file extractor copy ename)
+ (write-region (point-min) (point-max) write-to))
+ (unless (equal copy archive)
+ (delete-file copy))))))))
(defun archive-extract (&optional other-window-p event)
"In archive mode, extract this entry of the archive into its own buffer."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 2500ab0894: Make `C' in over tramp work in archive mode,
Lars Ingebrigtsen <=