aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/file_search.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/nvim/file_search.c b/src/nvim/file_search.c
index c374322d22..8ca0676a0f 100644
--- a/src/nvim/file_search.c
+++ b/src/nvim/file_search.c
@@ -856,6 +856,7 @@ char *vim_findfile(void *search_ctx_arg)
// Try without extra suffix and then with suffixes
// from 'suffixesadd'.
+ len = file_path.size;
char *suf = search_ctx->ffsc_tagfile ? "" : curbuf->b_p_sua;
while (true) {
// if file exists and we didn't already find it
@@ -916,8 +917,8 @@ char *vim_findfile(void *search_ctx_arg)
break;
}
assert(MAXPATHL >= file_path.size);
- file_path.size += copy_option_part(&suf, file_path.data + file_path.size,
- MAXPATHL - file_path.size, ",");
+ file_path.size = len + copy_option_part(&suf, file_path.data + len,
+ MAXPATHL - len, ",");
}
}
} else {
@@ -1515,20 +1516,20 @@ char *find_file_in_path_option(char *ptr, size_t len, int options, int first, ch
}
// When the file doesn't exist, try adding parts of 'suffixesadd'.
+ size_t NameBufflen = l;
char *suffix = suffixes;
while (true) {
if ((os_path_exists(NameBuff)
&& (find_what == FINDFILE_BOTH
- || ((find_what == FINDFILE_DIR)
- == os_isdir(NameBuff))))) {
- file_name = xmemdupz(NameBuff, l);
+ || ((find_what == FINDFILE_DIR) == os_isdir(NameBuff))))) {
+ file_name = xmemdupz(NameBuff, NameBufflen);
goto theend;
}
if (*suffix == NUL) {
break;
}
assert(MAXPATHL >= l);
- l += copy_option_part(&suffix, NameBuff + l, MAXPATHL - l, ",");
+ NameBufflen = l + copy_option_part(&suffix, NameBuff + l, MAXPATHL - l, ",");
}
}
}