diff options
| author | Michael Albinus | 2010-01-12 22:59:05 +0100 |
|---|---|---|
| committer | Michael Albinus | 2010-01-12 22:59:05 +0100 |
| commit | b8b45afc521d5a652554f007d4c8d41cd0972636 (patch) | |
| tree | 7a8f19613bcee12ed793e77084d0cfb4dc9e6aea | |
| parent | 832fdcab246884b180469309f8850337b4b3618c (diff) | |
| download | emacs-b8b45afc521d5a652554f007d4c8d41cd0972636.tar.gz emacs-b8b45afc521d5a652554f007d4c8d41cd0972636.zip | |
* files.el (copy-directory): Compute target for recursive
directories with identical names. (Bug#5343)
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/files.el | 15 |
2 files changed, 11 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 33b498f34d6..3c95811a8fc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-01-12 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * files.el (copy-directory): Compute target for recursive | ||
| 4 | directories with identical names. (Bug#5343) | ||
| 5 | |||
| 1 | 2010-01-12 Glenn Morris <rgm@gnu.org> | 6 | 2010-01-12 Glenn Morris <rgm@gnu.org> |
| 2 | 7 | ||
| 3 | * mail/emacsbug.el (report-emacs-bug-pretest-address): Set | 8 | * mail/emacsbug.el (report-emacs-bug-pretest-address): Set |
diff --git a/lisp/files.el b/lisp/files.el index 22f5936a1f6..302f114befe 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -4714,20 +4714,17 @@ this happens by default." | |||
| 4714 | ;; Compute target name. | 4714 | ;; Compute target name. |
| 4715 | (setq directory (directory-file-name (expand-file-name directory)) | 4715 | (setq directory (directory-file-name (expand-file-name directory)) |
| 4716 | newname (directory-file-name (expand-file-name newname))) | 4716 | newname (directory-file-name (expand-file-name newname))) |
| 4717 | (if (and (file-directory-p newname) | ||
| 4718 | (not (string-equal (file-name-nondirectory directory) | ||
| 4719 | (file-name-nondirectory newname)))) | ||
| 4720 | (setq newname | ||
| 4721 | (expand-file-name (file-name-nondirectory directory) newname))) | ||
| 4722 | (if (not (file-directory-p newname)) (make-directory newname parents)) | 4717 | (if (not (file-directory-p newname)) (make-directory newname parents)) |
| 4723 | 4718 | ||
| 4724 | ;; Copy recursively. | 4719 | ;; Copy recursively. |
| 4725 | (mapc | 4720 | (mapc |
| 4726 | (lambda (file) | 4721 | (lambda (file) |
| 4727 | (if (file-directory-p file) | 4722 | (let ((target (expand-file-name |
| 4728 | (copy-directory file newname keep-time parents) | 4723 | (file-name-nondirectory file) newname))) |
| 4729 | (copy-file file newname t keep-time))) | 4724 | (if (file-directory-p file) |
| 4730 | ;; We do not want to delete "." and "..". | 4725 | (copy-directory file target keep-time parents) |
| 4726 | (copy-file file target t keep-time)))) | ||
| 4727 | ;; We do not want to copy "." and "..". | ||
| 4731 | (directory-files directory 'full directory-files-no-dot-files-regexp)) | 4728 | (directory-files directory 'full directory-files-no-dot-files-regexp)) |
| 4732 | 4729 | ||
| 4733 | ;; Set directory attributes. | 4730 | ;; Set directory attributes. |