mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
Two fixes for :find completion and more testing. (Nazri Ramliy)
This commit is contained in:
parent
10d4664330
commit
d732f9aee0
16
src/misc1.c
16
src/misc1.c
@ -9722,6 +9722,9 @@ gen_expand_wildcards(num_pat, pat, num_file, file, flags)
|
|||||||
char_u *p;
|
char_u *p;
|
||||||
static int recursive = FALSE;
|
static int recursive = FALSE;
|
||||||
int add_pat;
|
int add_pat;
|
||||||
|
#if defined(FEAT_SEARCHPATH)
|
||||||
|
int did_expand_in_path = FALSE;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* expand_env() is called to expand things like "~user". If this fails,
|
* expand_env() is called to expand things like "~user". If this fails,
|
||||||
@ -9808,12 +9811,19 @@ gen_expand_wildcards(num_pat, pat, num_file, file, flags)
|
|||||||
if (mch_has_exp_wildcard(p))
|
if (mch_has_exp_wildcard(p))
|
||||||
{
|
{
|
||||||
#if defined(FEAT_SEARCHPATH)
|
#if defined(FEAT_SEARCHPATH)
|
||||||
if (*p != '.' && !vim_ispathsep(*p) && (flags & EW_PATH))
|
if ((flags & EW_PATH)
|
||||||
|
&& !mch_isFullName(p)
|
||||||
|
&& !(p[0] == '.'
|
||||||
|
&& (vim_ispathsep(p[1])
|
||||||
|
|| (p[1] == '.' && vim_ispathsep(p[2]))))
|
||||||
|
)
|
||||||
{
|
{
|
||||||
/* recursiveness is OK here */
|
/* :find completion where 'path' is used.
|
||||||
|
* Recursiveness is OK here. */
|
||||||
recursive = FALSE;
|
recursive = FALSE;
|
||||||
add_pat = expand_in_path(&ga, p, flags);
|
add_pat = expand_in_path(&ga, p, flags);
|
||||||
recursive = TRUE;
|
recursive = TRUE;
|
||||||
|
did_expand_in_path = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -9838,7 +9848,7 @@ gen_expand_wildcards(num_pat, pat, num_file, file, flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_SEARCHPATH)
|
#if defined(FEAT_SEARCHPATH)
|
||||||
if (ga.ga_len > 0 && (flags & EW_PATH))
|
if (did_expand_in_path && ga.ga_len > 0 && (flags & EW_PATH))
|
||||||
uniquefy_paths(&ga, p);
|
uniquefy_paths(&ga, p);
|
||||||
#endif
|
#endif
|
||||||
if (p != pat[i])
|
if (p != pat[i])
|
||||||
|
@ -150,6 +150,14 @@ SVoyager 2:w
|
|||||||
:exec "cd " . cwd . "/Xfind/in"
|
:exec "cd " . cwd . "/Xfind/in"
|
||||||
:find file
|
:find file
|
||||||
:exec "w >>" . test_out
|
:exec "w >>" . test_out
|
||||||
|
:" Test for relative to current buffer 'path' item
|
||||||
|
:exec "cd " . cwd . "/Xfind/"
|
||||||
|
:set path=./path
|
||||||
|
:" Open the file where Jimmy Hoffa is found
|
||||||
|
:e in/file.txt
|
||||||
|
:" Find the file containing 'E.T.' in the Xfind/in/path directory
|
||||||
|
:find file
|
||||||
|
:exec "w >>" . test_out
|
||||||
:q
|
:q
|
||||||
:exec "cd " . cwd
|
:exec "cd " . cwd
|
||||||
:call DeleteDirectory("Xfind")
|
:call DeleteDirectory("Xfind")
|
||||||
|
@ -16,3 +16,4 @@ Voyager 1
|
|||||||
Voyager 1
|
Voyager 1
|
||||||
Voyager 2
|
Voyager 2
|
||||||
Jimmy Hoffa
|
Jimmy Hoffa
|
||||||
|
E.T.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user