summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-24 21:21:26 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-24 21:21:26 +0200
commit358308dd99abdd56c6540339e505585d8db7bdfe (patch)
tree25330e413ecbae1e6e1104a754f4f87d03007f74
parentb58fe4588c6bfa173a3c47a66f410c2427bc668e (diff)
patch 7.4.2248v7.4.2248
Problem: When cancelling the :ptjump prompt a preview window is opened for a following command. Solution: Reset g_do_tagpreview. (Hirohito Higashi) Add a test. Avoid that the test runner gets stuck in trying to close a window.
-rw-r--r--src/tag.c3
-rw-r--r--src/testdir/runtest.vim11
-rw-r--r--src/testdir/test_tagjump.vim16
-rw-r--r--src/version.c2
4 files changed, 31 insertions, 1 deletions
diff --git a/src/tag.c b/src/tag.c
index 8fe213d6d5..f772c833d6 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -1078,6 +1078,9 @@ end_do_tag:
curwin->w_tagstackidx = tagstackidx;
#ifdef FEAT_WINDOWS
postponed_split = 0; /* don't split next time */
+# ifdef FEAT_QUICKFIX
+ g_do_tagpreview = 0; /* don't do tag preview next time */
+# endif
#endif
#ifdef FEAT_CSCOPE
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 8f0c0c3c80..2660d93e8a 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -105,8 +105,17 @@ function RunTheTest(test)
endif
" Close any extra windows and make the current one not modified.
- while winnr('$') > 1
+ while 1
+ let wincount = winnr('$')
+ if wincount == 1
+ break
+ endif
bwipe!
+ if wincount == winnr('$')
+ " Did not manage to close a window.
+ only!
+ break
+ endif
endwhile
set nomodified
endfunc
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index b22bde8047..678ad0ada8 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -7,4 +7,20 @@ func Test_ptag_with_notagstack()
set tagstack&vim
endfunc
+func Test_cancel_ptjump()
+ set tags=Xtags
+ call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
+ \ "word\tfile1\tcmd1",
+ \ "word\tfile2\tcmd2"],
+ \ 'Xtags')
+
+ only!
+ call feedkeys(":ptjump word\<CR>\<CR>", "xt")
+ help
+ call assert_equal(2, winnr('$'))
+
+ call delete('Xtags')
+ quit
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 0a96e68d5b..8b9818efa2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2248,
+/**/
2247,
/**/
2246,