Fix new copy-directory bug with empty dirs
Problem reported by Afdam Plaice (Bug#28520) and by Eli Zaretskii (Bug#28483#34). This is another bug that I introduced in my recent copy-directory changes. * lisp/files.el (copy-directory): Work with empty subdirectories, too. * test/lisp/files-tests.el (files-tests--copy-directory): Test for this bug.
This commit is contained in:
parent
fbd15836af
commit
047f02f00f
2 changed files with 7 additions and 2 deletions
|
@ -5564,7 +5564,7 @@ into NEWNAME instead."
|
||||||
(filetype (car (file-attributes file))))
|
(filetype (car (file-attributes file))))
|
||||||
(cond
|
(cond
|
||||||
((eq filetype t) ; Directory but not a symlink.
|
((eq filetype t) ; Directory but not a symlink.
|
||||||
(copy-directory file newname keep-time parents))
|
(copy-directory file target keep-time parents t))
|
||||||
((stringp filetype) ; Symbolic link
|
((stringp filetype) ; Symbolic link
|
||||||
(make-symbolic-link filetype target t))
|
(make-symbolic-link filetype target t))
|
||||||
((copy-file file target t keep-time)))))
|
((copy-file file target t keep-time)))))
|
||||||
|
|
|
@ -399,11 +399,16 @@ name (Bug#28412)."
|
||||||
(dirname (file-name-as-directory dir))
|
(dirname (file-name-as-directory dir))
|
||||||
(source (concat dirname "source"))
|
(source (concat dirname "source"))
|
||||||
(dest (concat dirname "dest/new/directory/"))
|
(dest (concat dirname "dest/new/directory/"))
|
||||||
(file (concat (file-name-as-directory source) "file")))
|
(file (concat (file-name-as-directory source) "file"))
|
||||||
|
(source2 (concat dirname "source2"))
|
||||||
|
(dest2 (concat dirname "dest/new2")))
|
||||||
(make-directory source)
|
(make-directory source)
|
||||||
(write-region "" nil file)
|
(write-region "" nil file)
|
||||||
(copy-directory source dest t t t)
|
(copy-directory source dest t t t)
|
||||||
(should (file-exists-p (concat dest "file")))
|
(should (file-exists-p (concat dest "file")))
|
||||||
|
(make-directory (concat (file-name-as-directory source2) "a") t)
|
||||||
|
(copy-directory source2 dest2)
|
||||||
|
(should (file-directory-p (concat (file-name-as-directory dest2) "a")))
|
||||||
(delete-directory dir 'recursive)))
|
(delete-directory dir 'recursive)))
|
||||||
|
|
||||||
(provide 'files-tests)
|
(provide 'files-tests)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue