From: Michael Albinus Date: Sun, 15 Nov 2009 13:52:37 +0000 (+0000) Subject: * arc-mode.el (archive-maybe-copy): Move creation of directory ... X-Git-Tag: emacs-pretest-23.1.90~421 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f5fce4ec56fc65663ec6a737efe2c5498052c76f;p=emacs.git * arc-mode.el (archive-maybe-copy): Move creation of directory ... (archive-unique-fname): ... here. (Bug#4929) --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5ad24472e1c..e1a538d6b1e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-11-15 Michael Albinus + + * arc-mode.el (archive-maybe-copy): Move creation of directory ... + (archive-unique-fname): ... here. (Bug#4929) + 2009-11-15 Stefan Monnier * help-mode.el (help-make-xrefs): Undo the last revert, and replace it 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))