summaryrefslogtreecommitdiff
path: root/lisp/arc-mode.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2009-11-15 13:52:37 +0000
committerMichael Albinus <michael.albinus@gmx.de>2009-11-15 13:52:37 +0000
commitf5fce4ec56fc65663ec6a737efe2c5498052c76f (patch)
treeee4493ffc47a3ff5c1747f87d2c52643c07973cc /lisp/arc-mode.el
parentf779e385544ed3b252796a76e1cabfc97a050014 (diff)
downloademacs-f5fce4ec56fc65663ec6a737efe2c5498052c76f.tar.gz
* arc-mode.el (archive-maybe-copy): Move creation of directory ...
(archive-unique-fname): ... here. (Bug#4929)
Diffstat (limited to 'lisp/arc-mode.el')
-rw-r--r--lisp/arc-mode.el20
1 files changed, 11 insertions, 9 deletions
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 3b7603b8c0e..62948c0cc3b 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -818,15 +818,22 @@ If FNAME is something our underlying filesystem can't grok, or if another
file by that name already exists in DIR, a unique new name is generated
using `make-temp-file', and the generated name is returned."
(let ((fullname (expand-file-name fname dir))
- (alien (string-match file-name-invalid-regexp fname)))
- (if (or alien (file-exists-p fullname))
- (make-temp-file
+ (alien (string-match file-name-invalid-regexp fname))
+ (tmpfile
(expand-file-name
(if (if (fboundp 'msdos-long-file-names)
(not (msdos-long-file-names)))
"am"
"arc-mode.")
- dir))
+ dir)))
+ (if (or alien (file-exists-p fullname))
+ (progn
+ ;; 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 tmpfile) t)
+ (make-temp-file tmpfile))
fullname)))
(defun archive-maybe-copy (archive)
@@ -843,11 +850,6 @@ using `make-temp-file', and the generated name is returned."
archive)))
(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))