From ab276820088305a2e3b94f8f62d42f9c043c5c66 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 24 Oct 2009 20:30:44 +0000 Subject: [PATCH] * files.el (delete-directory): Delete symlinks to directories with delete-file (Bug#4739). --- lisp/ChangeLog | 5 +++++ lisp/files.el | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2b05d3dd6ae..5387cfd080e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-10-24 Sven Joachim + + * files.el (delete-directory): Delete symlinks to directories with + delete-file (Bug#4739). + 2009-10-24 Chong Yidong * cedet/semantic/util.el (semantic-recursive-find-nonterminal-by-name): diff --git a/lisp/files.el b/lisp/files.el index ce9791fdaae..16210bfbadb 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4660,7 +4660,10 @@ If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well." (if (and recursive (not (file-symlink-p directory))) (mapc (lambda (file) - (if (file-directory-p file) + ;; This test is equivalent to + ;; (and (file-directory-p fn) (not (file-symlink-p fn))) + ;; but more efficient + (if (eq t (car (file-attributes file))) (delete-directory file recursive) (delete-file file))) ;; We do not want to delete "." and "..". -- 2.39.5