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.
This commit is contained in:
parent
7f9c5df966
commit
82d84d3fc9
2 changed files with 21 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
* emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list
|
||||
|
|
|
@ -4756,7 +4756,22 @@ this happens by default."
|
|||
;; Compute target name.
|
||||
(setq directory (directory-file-name (expand-file-name directory))
|
||||
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.
|
||||
(mapc
|
||||
|
|
Loading…
Add table
Reference in a new issue