fix(rplugin): dont create data dir if it's a broken symlink #25726

Checking if it's non-empty and not a directory gets us quite far, but
not all the way. While a working symlink would trigger the earlier
checks, a broken symlink does not.

This commit fixes the special case where ~/.local/share/nvim  already
exists but is a broken symlink. Thus, it fixes the following error on
startup:

E739: Cannot create directory /home/samuel/.local/share/nvim: file
already exists
This commit is contained in:
Samuel (ThinLinc team) 2023-11-28 12:17:39 +01:00 committed by GitHub
parent c9f53d0e40
commit adb2258345
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -14,7 +14,9 @@ function! s:GetManifestPath() abort
let dest = stdpath('data')
if !empty(dest)
if !isdirectory(dest)
call mkdir(dest, 'p', 0700)
if getftype(dest) != "link"
call mkdir(dest, 'p', 0700)
endif
endif
let manifest_base = dest
endif