diff options
Diffstat (limited to 'lisp/files.el')
-rw-r--r-- | lisp/files.el | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/files.el b/lisp/files.el index d14599f574..83ae91dd63 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4753,10 +4753,14 @@ this happens by default." (mapc (lambda (file) (let ((target (expand-file-name - (file-name-nondirectory file) newname))) - (if (file-directory-p file) - (copy-directory file target keep-time parents) - (copy-file file target t keep-time)))) + (file-name-nondirectory file) newname)) + (attrs (file-attributes file))) + (cond ((file-directory-p file) + (copy-directory file target keep-time parents)) + ((stringp (car attrs)) ; Symbolic link + (make-symbolic-link (car attrs) target t)) + (t + (copy-file file target t keep-time))))) ;; We do not want to copy "." and "..". (directory-files directory 'full directory-files-no-dot-files-regexp)) |