mirror of
https://github.com/neovim/neovim.git
synced 2025-10-16 06:46:07 +00:00
vim-patch:9.0.0270: some values of 'path' and 'tags' invalid in the tiny version
Problem: Some values of 'path' and 'tags' do not work in the tiny version.
Solution: Graduate the +path_extra feature.
2bd9dbc19f
This commit is contained in:
@@ -110,16 +110,15 @@ typedef struct ff_stack {
|
|||||||
typedef struct ff_visited {
|
typedef struct ff_visited {
|
||||||
struct ff_visited *ffv_next;
|
struct ff_visited *ffv_next;
|
||||||
|
|
||||||
/* Visited directories are different if the wildcard string are
|
// Visited directories are different if the wildcard string are
|
||||||
* different. So we have to save it.
|
// different. So we have to save it.
|
||||||
*/
|
|
||||||
char_u *ffv_wc_path;
|
char_u *ffv_wc_path;
|
||||||
|
|
||||||
// use FileID for comparison (needed because of links), else use filename.
|
// use FileID for comparison (needed because of links), else use filename.
|
||||||
bool file_id_valid;
|
bool file_id_valid;
|
||||||
FileID file_id;
|
FileID file_id;
|
||||||
/* The memory for this struct is allocated according to the length of
|
// The memory for this struct is allocated according to the length of
|
||||||
* ffv_fname.
|
// ffv_fname.
|
||||||
*/
|
|
||||||
char_u ffv_fname[1]; // actually longer
|
char_u ffv_fname[1]; // actually longer
|
||||||
} ff_visited_T;
|
} ff_visited_T;
|
||||||
|
|
||||||
@@ -510,9 +509,7 @@ void *vim_findfile_init(char_u *path, char_u *filename, char_u *stopdirs, int le
|
|||||||
xfree(buf);
|
xfree(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
sptr = ff_create_stack_element(ff_expand_buffer,
|
sptr = ff_create_stack_element(ff_expand_buffer, search_ctx->ffsc_wc_path, level, 0);
|
||||||
search_ctx->ffsc_wc_path,
|
|
||||||
level, 0);
|
|
||||||
|
|
||||||
ff_push(search_ctx, sptr);
|
ff_push(search_ctx, sptr);
|
||||||
search_ctx->ffsc_file_to_search = vim_strsave(filename);
|
search_ctx->ffsc_file_to_search = vim_strsave(filename);
|
||||||
@@ -641,11 +638,8 @@ char_u *vim_findfile(void *search_ctx_arg)
|
|||||||
* first time (hence stackp->ff_filearray == NULL)
|
* first time (hence stackp->ff_filearray == NULL)
|
||||||
*/
|
*/
|
||||||
if (stackp->ffs_filearray == NULL
|
if (stackp->ffs_filearray == NULL
|
||||||
&& ff_check_visited(&search_ctx->ffsc_dir_visited_list
|
&& ff_check_visited(&search_ctx->ffsc_dir_visited_list->ffvl_visited_list,
|
||||||
->ffvl_visited_list,
|
stackp->ffs_fix_path, stackp->ffs_wc_path) == FAIL) {
|
||||||
stackp->ffs_fix_path,
|
|
||||||
stackp->ffs_wc_path
|
|
||||||
) == FAIL) {
|
|
||||||
#ifdef FF_VERBOSE
|
#ifdef FF_VERBOSE
|
||||||
if (p_verbose >= 5) {
|
if (p_verbose >= 5) {
|
||||||
verbose_enter_scroll();
|
verbose_enter_scroll();
|
||||||
@@ -790,8 +784,7 @@ char_u *vim_findfile(void *search_ctx_arg)
|
|||||||
stackp->ffs_filearray_cur = 0;
|
stackp->ffs_filearray_cur = 0;
|
||||||
stackp->ffs_stage = 0;
|
stackp->ffs_stage = 0;
|
||||||
} else {
|
} else {
|
||||||
rest_of_wildcards = &stackp->ffs_wc_path[
|
rest_of_wildcards = &stackp->ffs_wc_path[STRLEN(stackp->ffs_wc_path)];
|
||||||
STRLEN(stackp->ffs_wc_path)];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stackp->ffs_stage == 0) {
|
if (stackp->ffs_stage == 0) {
|
||||||
@@ -833,23 +826,17 @@ char_u *vim_findfile(void *search_ctx_arg)
|
|||||||
// if file exists and we didn't already find it
|
// if file exists and we didn't already find it
|
||||||
if ((path_with_url((char *)file_path)
|
if ((path_with_url((char *)file_path)
|
||||||
|| (os_path_exists(file_path)
|
|| (os_path_exists(file_path)
|
||||||
&& (search_ctx->ffsc_find_what
|
&& (search_ctx->ffsc_find_what == FINDFILE_BOTH
|
||||||
== FINDFILE_BOTH
|
|| ((search_ctx->ffsc_find_what == FINDFILE_DIR)
|
||||||
|| ((search_ctx->ffsc_find_what
|
|
||||||
== FINDFILE_DIR)
|
|
||||||
== os_isdir(file_path)))))
|
== os_isdir(file_path)))))
|
||||||
#ifndef FF_VERBOSE
|
#ifndef FF_VERBOSE
|
||||||
&& (ff_check_visited(&search_ctx->ffsc_visited_list->ffvl_visited_list,
|
&& (ff_check_visited(&search_ctx->ffsc_visited_list->ffvl_visited_list,
|
||||||
file_path,
|
file_path, (char_u *)"") == OK)
|
||||||
(char_u *)""
|
|
||||||
) == OK)
|
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
#ifdef FF_VERBOSE
|
#ifdef FF_VERBOSE
|
||||||
if (ff_check_visited(&search_ctx->ffsc_visited_list->ffvl_visited_list,
|
if (ff_check_visited(&search_ctx->ffsc_visited_list->ffvl_visited_list,
|
||||||
file_path,
|
file_path, (char_u *)"") == FAIL) {
|
||||||
(char_u *)""
|
|
||||||
) == FAIL) {
|
|
||||||
if (p_verbose >= 5) {
|
if (p_verbose >= 5) {
|
||||||
verbose_enter_scroll();
|
verbose_enter_scroll();
|
||||||
smsg("Already: %s", file_path);
|
smsg("Already: %s", file_path);
|
||||||
|
Reference in New Issue
Block a user