From 0166179e60644475abb878ecec86c8847871eab6 Mon Sep 17 00:00:00 2001 From: Visuwesh Date: Sat, 16 Jul 2022 20:44:50 +0530 Subject: [PATCH] Ensure that directories exist when copying files from archive * lisp/arc-mode.el (archive-copy-file): If the directory the file is being extracted to does not exist, then create it. --- lisp/arc-mode.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index c52f2a4432..e5aadccc87 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1073,13 +1073,16 @@ archive-copy-file (user-error "Can't copy a list of files to a single file")) (save-excursion (dolist (file files) - (let ((write-to (if (file-directory-p new-name) - (expand-file-name file new-name) - new-name))) + (let* ((write-to (if (file-directory-p new-name) + (expand-file-name file new-name) + new-name)) + (write-to-dir (file-name-directory write-to))) (when (and (file-exists-p write-to) (not (yes-or-no-p (format "%s already exists; overwrite? " write-to)))) (user-error "Not overwriting %s" write-to)) + (unless (file-directory-p write-to-dir) + (make-directory write-to-dir t)) (archive-goto-file file) (let* ((descr (archive-get-descr)) (archive (buffer-file-name)) -- 2.35.1