aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel (ThinLinc team) <samuel@cendio.se>2023-11-28 12:17:39 +0100
committerGitHub <noreply@github.com>2023-11-28 03:17:39 -0800
commitadb2258345409d08c42809da0212eeb792e70106 (patch)
tree6c13b8639f6a0ce586d88c9c4253d031b761a88a
parentc9f53d0e40815644bbf7c57a0792f2c793c954aa (diff)
downloadrneovim-adb2258345409d08c42809da0212eeb792e70106.tar.gz
rneovim-adb2258345409d08c42809da0212eeb792e70106.tar.bz2
rneovim-adb2258345409d08c42809da0212eeb792e70106.zip
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
-rw-r--r--runtime/plugin/rplugin.vim4
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/plugin/rplugin.vim b/runtime/plugin/rplugin.vim
index 52f4bd05bc..bb637fcb77 100644
--- a/runtime/plugin/rplugin.vim
+++ b/runtime/plugin/rplugin.vim
@@ -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