Mercurial > vim
diff src/fileio.c @ 7629:befbed72da87 v7.4.1114
commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 17 15:56:34 2016 +0100
patch 7.4.1114
Problem: delete() does not work well with symbolic links.
Solution: Recognize symbolik links.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 17 Jan 2016 16:00:05 +0100 |
parents | 228ff048db20 |
children | 2a280b8e7040 |
line wrap: on
line diff
--- 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);