changeset 11759:5e36b2f825cb v8.0.0762

patch 8.0.0762: ml_get error with :psearch in buffer without a name commit https://github.com/vim/vim/commit/c31f9ae4f1976544522313b182957793063ee02c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 23 22:02:02 2017 +0200 patch 8.0.0762: ml_get error with :psearch in buffer without a name Problem: ml_get error with :psearch in buffer without a name. (Dominique Pelle) Solution: Use the buffer number instead of the file name. Check the cursor position.
author Christian Brabandt <cb@256bit.org>
date Sun, 23 Jul 2017 22:15:04 +0200
parents 911272da0c20
children 0899182defdb
files src/Makefile src/search.c src/testdir/Make_all.mak src/testdir/test_preview.vim src/version.c
diffstat 5 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile
+++ b/src/Makefile
@@ -2216,6 +2216,7 @@ test_arglist \
 	test_perl \
 	test_plus_arg_edit \
 	test_popup \
+	test_preview \
 	test_profile \
 	test_put \
 	test_python2 \
--- a/src/search.c
+++ b/src/search.c
@@ -5425,7 +5425,7 @@ search_line:
 			if (g_do_tagpreview != 0)
 			{
 			    if (!GETFILE_SUCCESS(getfile(
-					    0, curwin_save->w_buffer->b_fname,
+					   curwin_save->w_buffer->b_fnum, NULL,
 						     NULL, TRUE, lnum, FALSE)))
 				break;	/* failed to jump to file */
 			}
@@ -5433,6 +5433,7 @@ search_line:
 #endif
 			    setpcmark();
 			curwin->w_cursor.lnum = lnum;
+			check_cursor();
 		    }
 		    else
 		    {
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -175,6 +175,7 @@ NEW_TESTS = test_arabic.res \
 	    test_packadd.res \
 	    test_paste.res \
 	    test_perl.res \
+	    test_preview.res \
 	    test_profile.res \
 	    test_python2.res \
 	    test_python3.res \
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_preview.vim
@@ -0,0 +1,13 @@
+" Tests for the preview window
+
+func Test_Psearch()
+  " this used to cause ml_get errors
+  help
+  let wincount = winnr('$')
+  0f
+  ps.
+  call assert_equal(wincount + 1, winnr('$'))
+  pclose
+  call assert_equal(wincount, winnr('$'))
+  bwipe
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    762,
+/**/
     761,
 /**/
     760,