0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.1684: "gF" does not use line number after file in Visual mode

Problem:    "gF" does not use line number after file in Visual mode.
Solution:   Look for ":123" after the Visual area. (closes #6952)
This commit is contained in:
Bram Moolenaar
2020-09-14 19:11:45 +02:00
parent 2b22b113c6
commit efd5d8a967
3 changed files with 29 additions and 1 deletions

View File

@@ -1934,6 +1934,13 @@ grab_file_name(long count, linenr_T *file_lnum)
if (get_visual_text(NULL, &ptr, &len) == FAIL)
return NULL;
// Only recognize ":123" here
if (file_lnum != NULL && ptr[len] == ':' && isdigit(ptr[len + 1]))
{
char_u *p = ptr + len + 1;
*file_lnum = getdigits(&p);
}
return find_file_name_in_path(ptr, len, options,
count, curbuf->b_ffname);
}

View File

@@ -124,7 +124,7 @@ func Test_gf()
endfunc
func Test_gf_visual()
call writefile([], "Xtest_gf_visual")
call writefile(['one', 'two', 'three', 'four'], "Xtest_gf_visual")
new
call setline(1, 'XXXtest_gf_visualXXX')
set hidden
@@ -138,6 +138,25 @@ func Test_gf_visual()
normal VGgf
call assert_equal('Xtest_gf_visual', @%)
" following line number is used for gF
bwipe!
new
call setline(1, 'XXXtest_gf_visual:3XXX')
norm! 0ttvt:gF
call assert_equal('Xtest_gf_visual', bufname('%'))
call assert_equal(3, getcurpos()[1])
" line number in visual area is used for file name
if has('unix')
bwipe!
call writefile([], "Xtest_gf_visual:3")
new
call setline(1, 'XXXtest_gf_visual:3XXX')
norm! 0ttvtXgF
call assert_equal('Xtest_gf_visual:3', bufname('%'))
call delete('Xtest_gf_visual:3')
endif
bwipe!
call delete('Xtest_gf_visual')
set hidden&

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1684,
/**/
1683,
/**/