aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_cmds2.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 4e3fc86539..f46e4108f4 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -2683,10 +2683,24 @@ static int APP_BOTH;
static void add_pack_plugin(char_u *fname, void *cookie)
{
- if (cookie != &APP_LOAD && strstr((char *)p_rtp, (char *)fname) == NULL) {
- // directory is not yet in 'runtimepath', add it
- if (add_pack_dir_to_rtp(fname) == FAIL) {
- return;
+ if (cookie != &APP_LOAD) {
+ char *buf = xmalloc(MAXPATHL);
+ bool found = false;
+
+ const char *p = (const char *)p_rtp;
+ while (*p != NUL) {
+ copy_option_part((char_u **)&p, (char_u *)buf, MAXPATHL, ",");
+ if (path_fnamecmp(buf, (char *)fname) == 0) {
+ found = true;
+ break;
+ }
+ }
+ xfree(buf);
+ if (!found) {
+ // directory is not yet in 'runtimepath', add it
+ if (add_pack_dir_to_rtp(fname) == FAIL) {
+ return;
+ }
}
}