From 43a34f9f74fdce462fa250baab620264c28b6165 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 17 Jan 2016 15:56:34 +0100 Subject: patch 7.4.1114 Problem: delete() does not work well with symbolic links. Solution: Recognize symbolik links. --- src/fileio.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/fileio.c') diff --git a/src/fileio.c b/src/fileio.c index 6dbdea21e6..f809eb5bc3 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -7294,7 +7294,19 @@ delete_recursive(char_u *name) int i; char_u *exp; - if (mch_isdir(name)) + /* A symbolic link to a directory itself is deleted, not the directory it + * points to. */ + if ( +# if defined(WIN32) + mch_isdir(name) && !mch_is_symbolic_link(name) +# else +# ifdef UNIX + mch_isrealdir(name) +# else + mch_isdir(name) +# endif +# endif + ) { vim_snprintf((char *)NameBuff, MAXPATHL, "%s/*", name); exp = vim_strsave(NameBuff); -- cgit v1.2.3