Commit 82d84d3f authored by Chong Yidong's avatar Chong Yidong
Browse files

Fix bug in copy-directory copying into an existing directory.

http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01007.html

* files.el (copy-directory): If destination is an existing
directory, copy into a subdirectory there.
parent 7f9c5df9
2011-01-29 Chong Yidong <cyd@stupidchicken.com>
* files.el (copy-directory): If destination is an existing
directory, copy into a subdirectory there.
2011-01-29 Andreas Schwab <schwab@linux-m68k.org> 2011-01-29 Andreas Schwab <schwab@linux-m68k.org>
* emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list * emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list
......
...@@ -4756,7 +4756,22 @@ this happens by default." ...@@ -4756,7 +4756,22 @@ this happens by default."
;; Compute target name. ;; Compute target name.
(setq directory (directory-file-name (expand-file-name directory)) (setq directory (directory-file-name (expand-file-name directory))
newname (directory-file-name (expand-file-name newname))) newname (directory-file-name (expand-file-name newname)))
(if (not (file-directory-p newname)) (make-directory newname parents))
(if (not (file-directory-p newname))
;; If NEWNAME is not an existing directory, create it; that
;; is where we will copy the files of DIRECTORY.
(make-directory newname parents)
;; If NEWNAME is an existing directory, we will copy into
;; NEWNAME/[DIRECTORY-BASENAME].
(setq newname (expand-file-name
(file-name-nondirectory
(directory-file-name directory))
newname))
(if (and (file-exists-p newname)
(not (file-directory-p newname)))
(error "Cannot overwrite non-directory %s with a directory"
newname))
(make-directory newname t))
;; Copy recursively. ;; Copy recursively.
(mapc (mapc
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment