summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2013-07-01 21:25:25 +0200
committerBram Moolenaar <bram@vim.org>2013-07-01 21:25:25 +0200
commit8b14ab35761436c78ee352d359d32948937dd445 (patch)
treea470f9a55c87d64fa754c52c08c1240d6a75af0e
parenta1166c5e97c79ecfe266cface4768775dc727264 (diff)
downloadvim-8b14ab35761436c78ee352d359d32948937dd445.tar.gz
updated for version 7.3.1285v7.3.1285v7-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)
-rw-r--r--src/quickfix.c3
-rw-r--r--src/testdir/Make_amiga.mak3
-rw-r--r--src/testdir/Make_dos.mak2
-rw-r--r--src/testdir/Make_ming.mak2
-rw-r--r--src/testdir/Make_os2.mak2
-rw-r--r--src/testdir/Make_vms.mms4
-rw-r--r--src/testdir/Makefile2
-rw-r--r--src/testdir/test96.in139
-rw-r--r--src/testdir/test96.ok9
-rw-r--r--src/version.c2
10 files changed, 161 insertions, 7 deletions
diff --git a/src/quickfix.c b/src/quickfix.c
index f7897850..ebb02827 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -1635,7 +1635,10 @@ qf_jump(qi, dir, errornr, forceit)
FOR_ALL_WINDOWS(usable_win_ptr)
if (usable_win_ptr->w_llist == ll_ref
&& usable_win_ptr->w_buffer->b_p_bt[0] != 'q')
+ {
+ usable_win = 1;
break;
+ }
}
if (!usable_win)
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index 1bd176c1..5a24e6d1 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -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 \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
- test94.out test95.out
+ test94.out test95.out test96.out
.SUFFIXES: .in .out
@@ -145,3 +145,4 @@ test92.out: test92.in
test93.out: test93.in
test94.out: test94.in
test95.out: test95.in
+test96.out: test96.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 11ecd9a6..7204ae96 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -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 \
test84.out test85.out test86.out test87.out test88.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
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index 57937667..8bcfe890 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -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 \
test84.out test85.out test86.out test87.out test88.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
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index 80144340..2d111e8f 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -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 \
test81.out test82.out test83.out test84.out test88.out \
test89.out test90.out test91.out test92.out test93.out \
- test94.out test95.out
+ test94.out test95.out test96.out
.SUFFIXES: .in .out
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index 5ab0e415..3435dfcc 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -4,7 +4,7 @@
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# 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.
# 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 \
test82.out test83.out test84.out test88.out test89.out \
test90.out test91.out test92.out test93.out test94.out \
- test95.out
+ test95.out test96.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 6573e8ac..85b7c4d3 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -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 \
test84.out test85.out test86.out test87.out test88.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
diff --git a/src/testdir/test96.in b/src/testdir/test96.in
new file mode 100644
index 00000000..c06caef6
--- /dev/null
+++ b/src/testdir/test96.in
@@ -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
+
diff --git a/src/testdir/test96.ok b/src/testdir/test96.ok
new file mode 100644
index 00000000..3498e52f
--- /dev/null
+++ b/src/testdir/test96.ok
@@ -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
diff --git a/src/version.c b/src/version.c
index ce11e637..8f7905b3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1285,
+/**/
1284,
/**/
1283,