forked from aniani/vim
updated for version 7.3.1285
Problem: No tests for picking a window when selecting an entry in a location list. Not picking the right window sometimes. Solution: Add test 96. Set usable_win appropriately. (Lech Lorens)
This commit is contained in:
@@ -1635,7 +1635,10 @@ qf_jump(qi, dir, errornr, forceit)
|
|||||||
FOR_ALL_WINDOWS(usable_win_ptr)
|
FOR_ALL_WINDOWS(usable_win_ptr)
|
||||||
if (usable_win_ptr->w_llist == ll_ref
|
if (usable_win_ptr->w_llist == ll_ref
|
||||||
&& usable_win_ptr->w_buffer->b_p_bt[0] != 'q')
|
&& usable_win_ptr->w_buffer->b_p_bt[0] != 'q')
|
||||||
|
{
|
||||||
|
usable_win = 1;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!usable_win)
|
if (!usable_win)
|
||||||
|
@@ -33,7 +33,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
|||||||
test76.out test77.out test78.out test79.out test80.out \
|
test76.out test77.out test78.out test79.out test80.out \
|
||||||
test81.out test82.out test83.out test84.out test88.out \
|
test81.out test82.out test83.out test84.out test88.out \
|
||||||
test89.out test90.out test91.out test92.out test93.out \
|
test89.out test90.out test91.out test92.out test93.out \
|
||||||
test94.out test95.out
|
test94.out test95.out test96.out
|
||||||
|
|
||||||
.SUFFIXES: .in .out
|
.SUFFIXES: .in .out
|
||||||
|
|
||||||
@@ -145,3 +145,4 @@ test92.out: test92.in
|
|||||||
test93.out: test93.in
|
test93.out: test93.in
|
||||||
test94.out: test94.in
|
test94.out: test94.in
|
||||||
test95.out: test95.in
|
test95.out: test95.in
|
||||||
|
test96.out: test96.in
|
||||||
|
@@ -32,7 +32,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
|||||||
test79.out test80.out test81.out test82.out test83.out \
|
test79.out test80.out test81.out test82.out test83.out \
|
||||||
test84.out test85.out test86.out test87.out test88.out \
|
test84.out test85.out test86.out test87.out test88.out \
|
||||||
test89.out test90.out test91.out test92.out test93.out \
|
test89.out test90.out test91.out test92.out test93.out \
|
||||||
test94.out test95.out
|
test94.out test95.out test96.out
|
||||||
|
|
||||||
SCRIPTS32 = test50.out test70.out
|
SCRIPTS32 = test50.out test70.out
|
||||||
|
|
||||||
|
@@ -52,7 +52,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
|||||||
test79.out test80.out test81.out test82.out test83.out \
|
test79.out test80.out test81.out test82.out test83.out \
|
||||||
test84.out test85.out test86.out test87.out test88.out \
|
test84.out test85.out test86.out test87.out test88.out \
|
||||||
test89.out test90.out test91.out test92.out test93.out \
|
test89.out test90.out test91.out test92.out test93.out \
|
||||||
test94.out test95.out
|
test94.out test95.out test96.out
|
||||||
|
|
||||||
SCRIPTS32 = test50.out test70.out
|
SCRIPTS32 = test50.out test70.out
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
|||||||
test76.out test77.out test78.out test79.out test80.out \
|
test76.out test77.out test78.out test79.out test80.out \
|
||||||
test81.out test82.out test83.out test84.out test88.out \
|
test81.out test82.out test83.out test84.out test88.out \
|
||||||
test89.out test90.out test91.out test92.out test93.out \
|
test89.out test90.out test91.out test92.out test93.out \
|
||||||
test94.out test95.out
|
test94.out test95.out test96.out
|
||||||
|
|
||||||
.SUFFIXES: .in .out
|
.SUFFIXES: .in .out
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
|
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
|
||||||
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
|
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
|
||||||
#
|
#
|
||||||
# Last change: 2013 May 18
|
# Last change: 2013 Jul 01
|
||||||
#
|
#
|
||||||
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
|
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
|
||||||
# Edit the lines in the Configuration section below to select.
|
# Edit the lines in the Configuration section below to select.
|
||||||
@@ -78,7 +78,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
|
|||||||
test77.out test78.out test79.out test80.out test81.out \
|
test77.out test78.out test79.out test80.out test81.out \
|
||||||
test82.out test83.out test84.out test88.out test89.out \
|
test82.out test83.out test84.out test88.out test89.out \
|
||||||
test90.out test91.out test92.out test93.out test94.out \
|
test90.out test91.out test92.out test93.out test94.out \
|
||||||
test95.out
|
test95.out test96.out
|
||||||
|
|
||||||
# Known problems:
|
# Known problems:
|
||||||
# Test 30: a problem around mac format - unknown reason
|
# Test 30: a problem around mac format - unknown reason
|
||||||
|
@@ -29,7 +29,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
|
|||||||
test79.out test80.out test81.out test82.out test83.out \
|
test79.out test80.out test81.out test82.out test83.out \
|
||||||
test84.out test85.out test86.out test87.out test88.out \
|
test84.out test85.out test86.out test87.out test88.out \
|
||||||
test89.out test90.out test91.out test92.out test93.out \
|
test89.out test90.out test91.out test92.out test93.out \
|
||||||
test94.out test95.out
|
test94.out test95.out test96.out
|
||||||
|
|
||||||
SCRIPTS_GUI = test16.out
|
SCRIPTS_GUI = test16.out
|
||||||
|
|
||||||
|
139
src/testdir/test96.in
Normal file
139
src/testdir/test96.in
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
This will test for problems in quickfix:
|
||||||
|
A. incorrectly copying location lists which caused the location list to show a
|
||||||
|
different name than the file that was actually being displayed.
|
||||||
|
B. not reusing the window for which the location list window is opened but
|
||||||
|
instead creating new windows.
|
||||||
|
C. make sure that the location list window is not reused instead of the window
|
||||||
|
it belongs to.
|
||||||
|
|
||||||
|
Note: to debug a problem comment out the last ":b 1" in a test and testing will
|
||||||
|
stop at this point.
|
||||||
|
|
||||||
|
STARTTEST
|
||||||
|
:so small.vim
|
||||||
|
: enew
|
||||||
|
: w! test.out
|
||||||
|
: b 1
|
||||||
|
: " Set up the test environment:
|
||||||
|
: function! ReadTestProtocol(name)
|
||||||
|
: let base = substitute(a:name, '\v^test://(.*)%(\.[^.]+)?', '\1', '')
|
||||||
|
: let word = substitute(base, '\v(.*)\..*', '\1', '')
|
||||||
|
:
|
||||||
|
: setl modifiable
|
||||||
|
: setl noreadonly
|
||||||
|
: setl noswapfile
|
||||||
|
: setl bufhidden=delete
|
||||||
|
: %del _
|
||||||
|
: " For problem 2:
|
||||||
|
: " 'buftype' has to be set to reproduce the constant opening of new windows
|
||||||
|
: setl buftype=nofile
|
||||||
|
:
|
||||||
|
: call setline(1, word)
|
||||||
|
:
|
||||||
|
: setl nomodified
|
||||||
|
: setl nomodifiable
|
||||||
|
: setl readonly
|
||||||
|
: exe 'doautocmd BufRead ' . substitute(a:name, '\v^test://(.*)', '\1', '')
|
||||||
|
: endfunction
|
||||||
|
: augroup testgroup
|
||||||
|
: au!
|
||||||
|
: autocmd BufReadCmd test://* call ReadTestProtocol(expand("<amatch>"))
|
||||||
|
: augroup END
|
||||||
|
: let words = [ "foo", "bar", "baz", "quux", "shmoo", "spam", "eggs" ]
|
||||||
|
:
|
||||||
|
: let qflist = []
|
||||||
|
: for word in words
|
||||||
|
: call add(qflist, {'filename': 'test://' . word . '.txt', 'text': 'file ' . word . '.txt', })
|
||||||
|
: " NOTE: problem 1:
|
||||||
|
: " intentionally not setting 'lnum' so that the quickfix entries are not
|
||||||
|
: " valid
|
||||||
|
: call setloclist(0, qflist, ' ')
|
||||||
|
: endfor
|
||||||
|
ENDTEST
|
||||||
|
|
||||||
|
Test A:
|
||||||
|
STARTTEST
|
||||||
|
:lrewind
|
||||||
|
:enew
|
||||||
|
:lopen
|
||||||
|
:lnext
|
||||||
|
:lnext
|
||||||
|
:lnext
|
||||||
|
:lnext
|
||||||
|
:vert split
|
||||||
|
:wincmd L
|
||||||
|
:lopen
|
||||||
|
:wincmd p
|
||||||
|
:lnext
|
||||||
|
:"b 1
|
||||||
|
:let fileName = expand("%")
|
||||||
|
:wincmd p
|
||||||
|
:let locationListFileName = substitute(getline(line('.')), '\([^|]*\)|.*', '\1', '')
|
||||||
|
:wincmd n
|
||||||
|
:wincmd K
|
||||||
|
:b test.out
|
||||||
|
:call append(line('$'), "Test A:")
|
||||||
|
:call append(line('$'), " - file name displayed: " . fileName)
|
||||||
|
:call append(line('$'), " - quickfix claims that the file name displayed is: " . locationListFileName)
|
||||||
|
:w
|
||||||
|
:wincmd o
|
||||||
|
:b 1
|
||||||
|
ENDTEST
|
||||||
|
|
||||||
|
Test B:
|
||||||
|
STARTTEST
|
||||||
|
:lrewind
|
||||||
|
:lopen
|
||||||
|
:2
|
||||||
|
:exe "normal \<CR>"
|
||||||
|
:wincmd p
|
||||||
|
:3
|
||||||
|
:exe "normal \<CR>"
|
||||||
|
:wincmd p
|
||||||
|
:4
|
||||||
|
:exe "normal \<CR>"
|
||||||
|
:let numberOfWindowsOpen = winnr('$')
|
||||||
|
:wincmd n
|
||||||
|
:wincmd K
|
||||||
|
:b test.out
|
||||||
|
:call append(line('$'), "Test B:")
|
||||||
|
:call append(line('$'), " - number of window open: " . numberOfWindowsOpen)
|
||||||
|
:w
|
||||||
|
:wincmd o
|
||||||
|
:b 1
|
||||||
|
ENDTEST
|
||||||
|
|
||||||
|
Test C:
|
||||||
|
STARTTEST
|
||||||
|
:lrewind
|
||||||
|
:lopen
|
||||||
|
:" Let's move the location list window to the top to check whether it (the first
|
||||||
|
:" window found) will be reused when we try to open new windows:
|
||||||
|
:wincmd K
|
||||||
|
:2
|
||||||
|
:exe "normal \<CR>"
|
||||||
|
:wincmd p
|
||||||
|
:3
|
||||||
|
:exe "normal \<CR>"
|
||||||
|
:wincmd p
|
||||||
|
:4
|
||||||
|
:exe "normal \<CR>"
|
||||||
|
:1wincmd w
|
||||||
|
:let locationListWindowBufType = &buftype
|
||||||
|
:2wincmd w
|
||||||
|
:let bufferName = expand("%")
|
||||||
|
:wincmd n
|
||||||
|
:wincmd K
|
||||||
|
:b test.out
|
||||||
|
:call append(line('$'), "Test C:")
|
||||||
|
:call append(line('$'), " - 'buftype' of the location list window: " . locationListWindowBufType)
|
||||||
|
:call append(line('$'), " - buffer displayed in the 2nd window: " . bufferName)
|
||||||
|
:w
|
||||||
|
:wincmd o
|
||||||
|
:b 1
|
||||||
|
ENDTEST
|
||||||
|
|
||||||
|
STARTTEST
|
||||||
|
:qa
|
||||||
|
ENDTEST
|
||||||
|
|
9
src/testdir/test96.ok
Normal file
9
src/testdir/test96.ok
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
Test A:
|
||||||
|
- file name displayed: test://bar.txt
|
||||||
|
- quickfix claims that the file name displayed is: test://bar.txt
|
||||||
|
Test B:
|
||||||
|
- number of window open: 2
|
||||||
|
Test C:
|
||||||
|
- 'buftype' of the location list window: quickfix
|
||||||
|
- buffer displayed in the 2nd window: test://quux.txt
|
@@ -728,6 +728,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 */
|
||||||
|
/**/
|
||||||
|
1285,
|
||||||
/**/
|
/**/
|
||||||
1284,
|
1284,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user