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:
@@ -1934,6 +1934,13 @@ grab_file_name(long count, linenr_T *file_lnum)
|
|||||||
|
|
||||||
if (get_visual_text(NULL, &ptr, &len) == FAIL)
|
if (get_visual_text(NULL, &ptr, &len) == FAIL)
|
||||||
return NULL;
|
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,
|
return find_file_name_in_path(ptr, len, options,
|
||||||
count, curbuf->b_ffname);
|
count, curbuf->b_ffname);
|
||||||
}
|
}
|
||||||
|
@@ -124,7 +124,7 @@ func Test_gf()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_gf_visual()
|
func Test_gf_visual()
|
||||||
call writefile([], "Xtest_gf_visual")
|
call writefile(['one', 'two', 'three', 'four'], "Xtest_gf_visual")
|
||||||
new
|
new
|
||||||
call setline(1, 'XXXtest_gf_visualXXX')
|
call setline(1, 'XXXtest_gf_visualXXX')
|
||||||
set hidden
|
set hidden
|
||||||
@@ -138,6 +138,25 @@ func Test_gf_visual()
|
|||||||
normal VGgf
|
normal VGgf
|
||||||
call assert_equal('Xtest_gf_visual', @%)
|
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!
|
bwipe!
|
||||||
call delete('Xtest_gf_visual')
|
call delete('Xtest_gf_visual')
|
||||||
set hidden&
|
set hidden&
|
||||||
|
@@ -750,6 +750,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 */
|
||||||
|
/**/
|
||||||
|
1684,
|
||||||
/**/
|
/**/
|
||||||
1683,
|
1683,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user