From: Visuwesh Date: Sun, 17 Jul 2022 09:22:32 +0000 (+0200) Subject: Ensure that directories exist when copying files from archive X-Git-Tag: emacs-29.0.90~1447^2~886 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=407ee71c067de943ec3d0abee54755f59baf47cd;p=emacs.git 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 (bug#56603). --- diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 35189f1bfd8..dbb8c202091 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1073,13 +1073,16 @@ NEW-NAME." (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))