mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.0.0602: when gF fails to edit the file the cursor still moves
Problem: When gF fails to edit the file the cursor still moves to the found line number. Solution: Check the return value of do_ecmd(). (Michael Hwang)
This commit is contained in:
@@ -6250,9 +6250,9 @@ nv_gotofile(cmdarg_T *cap)
|
|||||||
if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf))
|
if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf))
|
||||||
(void)autowrite(curbuf, FALSE);
|
(void)autowrite(curbuf, FALSE);
|
||||||
setpcmark();
|
setpcmark();
|
||||||
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
|
if (do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
|
||||||
P_HID(curbuf) ? ECMD_HIDE : 0, curwin);
|
P_HID(curbuf) ? ECMD_HIDE : 0, curwin) == OK
|
||||||
if (cap->nchar == 'F' && lnum >= 0)
|
&& cap->nchar == 'F' && lnum >= 0)
|
||||||
{
|
{
|
||||||
curwin->w_cursor.lnum = lnum;
|
curwin->w_cursor.lnum = lnum;
|
||||||
check_cursor_lnum();
|
check_cursor_lnum();
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
" This is a test if a URL is recognized by "gf", with the cursor before and
|
" This is a test if a URL is recognized by "gf", with the cursor before and
|
||||||
" after the "://". Also test ":\\".
|
" after the "://". Also test ":\\".
|
||||||
function! Test_gf_url()
|
func Test_gf_url()
|
||||||
enew!
|
enew!
|
||||||
call append(0, [
|
call append(0, [
|
||||||
\ "first test for URL://machine.name/tmp/vimtest2a and other text",
|
\ "first test for URL://machine.name/tmp/vimtest2a and other text",
|
||||||
@@ -30,4 +30,25 @@ function! Test_gf_url()
|
|||||||
|
|
||||||
set isf&vim
|
set isf&vim
|
||||||
enew!
|
enew!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
|
func Test_gF()
|
||||||
|
new
|
||||||
|
call setline(1, ['111', '222', '333', '444'])
|
||||||
|
w! Xfile
|
||||||
|
close
|
||||||
|
new
|
||||||
|
call setline(1, ['one', 'Xfile:3', 'three'])
|
||||||
|
2
|
||||||
|
call assert_fails('normal gF', 'E37:')
|
||||||
|
call assert_equal(2, getcurpos()[1])
|
||||||
|
w! Xfile2
|
||||||
|
normal gF
|
||||||
|
call assert_equal('Xfile', bufname('%'))
|
||||||
|
call assert_equal(3, getcurpos()[1])
|
||||||
|
|
||||||
|
call delete('Xfile')
|
||||||
|
call delete('Xfile2')
|
||||||
|
bwipe Xfile
|
||||||
|
bwipe Xfile2
|
||||||
|
endfunc
|
||||||
|
@@ -764,6 +764,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 */
|
||||||
|
/**/
|
||||||
|
602,
|
||||||
/**/
|
/**/
|
||||||
601,
|
601,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user