summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2006-02-03 11:05:29 +0000
committerEli Zaretskii <eliz@gnu.org>2006-02-03 11:05:29 +0000
commitb3985039555557d9017f57e941de4393dbc7baf2 (patch)
tree80d23618e28cbd53693dd640f3df692ba69af1d8 /lisp
parent67e5330555fc862cdf4099e57d440729dab7066f (diff)
downloademacs-b3985039555557d9017f57e941de4393dbc7baf2.tar.gz
(archive-maybe-copy): Fix the way directories in the archive are created
in archive-tmpdir.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/arc-mode.el14
1 files changed, 5 insertions, 9 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index c376070ea3b..2d97c319c88 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -800,17 +800,13 @@ using `make-temp-file', and the generated name is returned."
(archive-name
(or (and archive-subfile-mode (aref archive-subfile-mode 0))
archive)))
- (make-directory archive-tmpdir t)
- ;; If ARCHIVE includes leading directories, make sure they
- ;; exist under archive-tmpdir.
- (let ((arch-dir (file-name-directory archive)))
- (if arch-dir
- (make-directory (concat
- (file-name-as-directory archive-tmpdir)
- arch-dir)
- t)))
(setq archive-local-name
(archive-unique-fname archive-name archive-tmpdir))
+ ;; Maked sure all the leading directories in
+ ;; archive-local-name exist under archive-tmpdir, so that
+ ;; the directory structure recorded in the archive is
+ ;; reconstructed in the temporary directory.
+ (make-directory (file-name-directory archive-local-name) t)
(save-restriction
(widen)
(write-region start (point-max) archive-local-name nil 'nomessage))