mirror of
https://github.com/vim/vim.git
synced 2025-07-25 10:54:51 -04:00
updated for version 7.3.1297
Problem: findfile() directory matching does not work when a star follows text. (Markus Braun) Solution: Make a wildcard work properly. (Christian Brabandt)
This commit is contained in:
parent
8968a31179
commit
f4c5fcb3ad
54
src/misc2.c
54
src/misc2.c
@ -4679,8 +4679,58 @@ vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what,
|
|||||||
}
|
}
|
||||||
STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
|
STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
|
||||||
add_pathsep(ff_expand_buffer);
|
add_pathsep(ff_expand_buffer);
|
||||||
STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
|
{
|
||||||
add_pathsep(ff_expand_buffer);
|
char_u *buf = alloc(STRLEN(ff_expand_buffer)
|
||||||
|
+ STRLEN(search_ctx->ffsc_fix_path));
|
||||||
|
|
||||||
|
STRCPY(buf, ff_expand_buffer);
|
||||||
|
STRCAT(buf, search_ctx->ffsc_fix_path);
|
||||||
|
if (mch_isdir(buf))
|
||||||
|
{
|
||||||
|
STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
|
||||||
|
add_pathsep(ff_expand_buffer);
|
||||||
|
}
|
||||||
|
#ifdef FEAT_PATH_EXTRA
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char_u *p = vim_strrchr(search_ctx->ffsc_fix_path, PATHSEP);
|
||||||
|
char_u *wc_path = NUL;
|
||||||
|
char_u *temp = NUL;
|
||||||
|
int len = 0;
|
||||||
|
|
||||||
|
if (p != NULL)
|
||||||
|
{
|
||||||
|
len = p - search_ctx->ffsc_fix_path;
|
||||||
|
STRNCAT(ff_expand_buffer, search_ctx->ffsc_fix_path, len);
|
||||||
|
add_pathsep(ff_expand_buffer);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
len = STRLEN(search_ctx->ffsc_fix_path);
|
||||||
|
|
||||||
|
if (search_ctx->ffsc_wc_path != NULL)
|
||||||
|
{
|
||||||
|
wc_path = vim_strsave(search_ctx->ffsc_wc_path);
|
||||||
|
temp = alloc(STRLEN(search_ctx->ffsc_wc_path)
|
||||||
|
+ (STRLEN(search_ctx->ffsc_fix_path) - len));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (temp == NULL || wc_path == NULL)
|
||||||
|
{
|
||||||
|
vim_free(buf);
|
||||||
|
vim_free(temp);
|
||||||
|
vim_free(wc_path);
|
||||||
|
goto error_return;
|
||||||
|
}
|
||||||
|
|
||||||
|
STRCPY(temp, search_ctx->ffsc_fix_path + len);
|
||||||
|
STRCAT(temp, search_ctx->ffsc_wc_path);
|
||||||
|
vim_free(search_ctx->ffsc_wc_path);
|
||||||
|
vim_free(wc_path);
|
||||||
|
search_ctx->ffsc_wc_path = temp;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
vim_free(buf);
|
||||||
|
}
|
||||||
|
|
||||||
sptr = ff_create_stack_element(ff_expand_buffer,
|
sptr = ff_create_stack_element(ff_expand_buffer,
|
||||||
#ifdef FEAT_PATH_EXTRA
|
#ifdef FEAT_PATH_EXTRA
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
Some tests for setting 'number' and 'relativenumber'
|
- Some tests for setting 'number' and 'relativenumber'
|
||||||
This is not all that useful now that the options are no longer reset when
|
This is not all that useful now that the options are no longer reset when
|
||||||
setting the other.
|
setting the other.
|
||||||
|
- Some tests for findfile() function
|
||||||
|
|
||||||
STARTTEST
|
STARTTEST
|
||||||
:so small.vim
|
:so small.vim
|
||||||
@ -49,6 +50,17 @@ STARTTEST
|
|||||||
:$put g
|
:$put g
|
||||||
:$put h
|
:$put h
|
||||||
:"
|
:"
|
||||||
|
:let cwd=getcwd()
|
||||||
|
:cd ../..
|
||||||
|
:$put =''
|
||||||
|
:$put ='Testing findfile'
|
||||||
|
:$put =''
|
||||||
|
:$put =findfile('test19.in','src/test*')
|
||||||
|
:exe "cd" cwd
|
||||||
|
:cd ..
|
||||||
|
:$put =findfile('test19.in','test*')
|
||||||
|
:$put =findfile('test19.in','testdir')
|
||||||
|
:exe "cd" cwd
|
||||||
:/^results/,$w! test.out
|
:/^results/,$w! test.out
|
||||||
:q!
|
:q!
|
||||||
ENDTEST
|
ENDTEST
|
||||||
|
@ -20,3 +20,9 @@ results:
|
|||||||
number
|
number
|
||||||
|
|
||||||
relativenumber
|
relativenumber
|
||||||
|
|
||||||
|
Testing findfile
|
||||||
|
|
||||||
|
src/testdir/test19.in
|
||||||
|
testdir/test19.in
|
||||||
|
testdir/test19.in
|
||||||
|
@ -728,6 +728,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1297,
|
||||||
/**/
|
/**/
|
||||||
1296,
|
1296,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user