summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-07-09 13:44:59 +0200
committerBram Moolenaar <Bram@vim.org>2013-07-09 13:44:59 +0200
commit04c5c9ee27e1d6c27085e4e9fefa545f26388a56 (patch)
tree99c988e76befe1b73f912b9906b4b72fa934fcfc /src
parentc64b85a3480f6692b47ac21977e149311adc7532 (diff)
updated for version 7.4a.005v7.4a.005
Problem: Scroll binding causes unexpected scroll. Solution: Store the topline after updating scroll binding. Add a test. (Lech Lorens)
Diffstat (limited to 'src')
-rw-r--r--src/option.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/test98.in21
-rw-r--r--src/testdir/test98.ok1
-rw-r--r--src/testdir/test98a.in27
-rw-r--r--src/version.c2
11 files changed, 62 insertions, 7 deletions
diff --git a/src/option.c b/src/option.c
index e91ef5d60d..2f1ef11309 100644
--- a/src/option.c
+++ b/src/option.c
@@ -7801,7 +7801,10 @@ set_bool_option(opt_idx, varp, value, opt_flags)
else if ((int *)varp == &curwin->w_p_scb)
{
if (curwin->w_p_scb)
+ {
do_check_scrollbind(FALSE);
+ curwin->w_scbind_pos = curwin->w_topline;
+ }
}
#endif
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index afc4a03dd3..0c1e9aff09 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 test96.out test97.out
+ test94.out test95.out test96.out test97.out test98.out
.SUFFIXES: .in .out
@@ -147,3 +147,4 @@ test94.out: test94.in
test95.out: test95.in
test96.out: test96.in
test97.out: test97.in
+test98.out: test98.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 012ca8febd..a57649e5e0 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 test96.out
+ test94.out test95.out test96.out test98.out
SCRIPTS32 = test50.out test70.out
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index 800603b317..6c1fae0f86 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 test96.out
+ test94.out test95.out test96.out test98.out
SCRIPTS32 = test50.out test70.out
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index bb79c00ea5..5741f32f85 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -34,7 +34,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 test96.out
+ test94.out test95.out test96.out test98.out
.SUFFIXES: .in .out
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index a62b7ad451..e6f6fbc79a 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 Jul 03
+# Last change: 2013 Jul 09
#
# 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 test96.out test97.out
+ test95.out test96.out test97.out test98.out
# Known problems:
# Test 30: a problem around mac format - unknown reason
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index bc525d9d1a..0292dd2128 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 test96.out test97.out
+ test94.out test95.out test96.out test97.out test98.out
SCRIPTS_GUI = test16.out
diff --git a/src/testdir/test98.in b/src/testdir/test98.in
new file mode 100644
index 0000000000..b316017dc4
--- /dev/null
+++ b/src/testdir/test98.in
@@ -0,0 +1,21 @@
+Test for 'scrollbind' causing an unexpected scroll of one of the windows.
+STARTTEST
+:so small.vim
+:source test98a.in
+:let topLineLeft = line('w0')
+:wincmd p
+:let topLineRight = line('w0')
+:setl noscrollbind
+:wincmd p
+:setl noscrollbind
+:q!
+:%del _
+:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
+:w! test.out
+:brewind
+ENDTEST
+
+STARTTEST
+:qa!
+ENDTEST
+
diff --git a/src/testdir/test98.ok b/src/testdir/test98.ok
new file mode 100644
index 0000000000..356ddd8eac
--- /dev/null
+++ b/src/testdir/test98.ok
@@ -0,0 +1 @@
+Difference between the top lines (left - right): 0
diff --git a/src/testdir/test98a.in b/src/testdir/test98a.in
new file mode 100644
index 0000000000..4999c28c7c
--- /dev/null
+++ b/src/testdir/test98a.in
@@ -0,0 +1,27 @@
+" We don't want the status line to cause problems:
+set laststatus=0
+redraw!
+let g:totalLines = &lines * 20
+let middle = g:totalLines / 2
+wincmd n
+wincmd o
+for i in range(1, g:totalLines)
+ call setline(i, 'LINE ' . i)
+endfor
+
+exe string(middle)
+normal zt
+normal M
+
+aboveleft vert new
+for i in range(1, g:totalLines)
+ call setline(i, 'line ' . i)
+endfor
+exe string(middle)
+normal zt
+normal M
+setl scb
+
+wincmd p
+
+call feedkeys(":setl scb\n\<C-w>\<C-w>", 't')
diff --git a/src/version.c b/src/version.c
index ad4e4412cb..25534c57ce 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 */
/**/
+ 5,
+/**/
4,
/**/
3,