Problem: 'cursorbind' scrolling depends on whether 'cursorline' is set.
Solution: Always call validate_cursor(). (Christian Brabandt, closes #10230,
closes #10014)
restart_edit_save = restart_edit;
restart_edit = TRUE;
check_cursor();
-# ifdef FEAT_SYN_HL
- if (curwin->w_p_cul || curwin->w_p_cuc)
- validate_cursor();
-# endif
+ validate_cursor();
restart_edit = restart_edit_save;
// Correct cursor for multi-byte character.
if (has_mbyte)
with "Skipped" so that it's clear this still needs work. E.g.: throw
"Skipped: Bug with <c-e> and popupmenu not fixed yet"
+- The following environment variables are recognized and can be set to
+ influence the behavior of the test suite (see runtest.vim for details)
+
+ - $TEST_MAY_FAIL=Test_channel_one - ignore those failing tests
+ - $TEST_FILTER=Test_channel - only run test that match this pattern
+ - $TEST_SKIP_PAT=Test_channel - skip tests that match this pattern
+ - $TEST_NO_RETRY=yes - do not try to re-run failing tests
+ You can also set them in Vim:
+ :let $TEST_MAY_FAIL = 'Test_channel_one'
+ :let $TEST_FILTER = '_set_mode'
+ :let $TEST_SKIP_PAT = 'Test_loop_forever'
+ :let $TEST_NO_RETRY = 'yes'
+ Use an empty string to revert, e.g.:
+ :let $TEST_FILTER = ''
+
- See the start of runtest.vim for more help.
test fails, then the test.log file contains the error messages. If all the
tests are successful, then this file will be an empty file.
-To run a single test function from a test script:
+- To run a single test function from a test script:
$ ../vim -u NONE -S runtest.vim <test_file>.vim <function_name>
-To run all the tests:
+- To execute only specific test functions, add a second argument:
+
+ $ ../vim -u NONE -S runtest.vim test_channel.vim open_delay
+
+
+- To run all the tests:
$ make
-To run the test on MS-Windows using the MSVC nmake:
+- To run the test on MS-Windows using the MSVC nmake:
> nmake -f Make_dos.mak
-To run the tests with GUI Vim:
+- To run the tests with GUI Vim:
$ make GUI_FLAG=-g
$ make VIMPROG=../gvim
-To cleanup the temporary files after running the tests:
+- To cleanup the temporary files after running the tests:
$ make clean
-
--- /dev/null
+|a+0&#ffffff0| |b@1| |c@1| |d@1| |e@1| |f@1| |g@1| ||+1&&|a+0&&@1| |b@1| |c@1| |d@1| |e@1| |f@1| |g@1> |h@1| |i@1| |j@1| |k@1| |l@1| |m@1| |n@1| |o@1| |p@1| |q@1| |r@1|
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|2|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|2|1| @10|A|l@1
+| +0&&@74
--- /dev/null
+| +0&#ffffff0|h@1| |i@1| |j@1| |k@1| |l@1| |m@1| |n||+1&&|a+0&&@1| |b@1| |c@1| |d@1| |e@1| |f@1| |g@1| |h@1| |i@1| |j@1| >k@1| |l@1| |m@1| |n@1| |o@1| |p@1| |q@1| |r@1|
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|3|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|3|1| @10|A|l@1
+| +0&&@74
--- /dev/null
+|a+8&#ffffff0| |b@1| |c@1| |d@1| |e@1| |f@1| |g@1| ||+1&&|a+8&&@1| |b@1| |c@1| |d@1| |e@1| |f@1| |g@1> |h@1| |i@1| |j@1| |k@1| |l@1| |m@1| |n@1| |o@1| |p@1| |q@1| |r@1|
+| +0&&@18| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
+|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|2|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|2|1| @10|A|l@1
+|:+0&&|w|i|n|d|o| |:|s|e|t| |c|u|r|s|o|r|l|i|n|e| @52
--- /dev/null
+| +8&#ffffff0|h@1| |i@1| |j@1| |k@1| |l@1| |m@1| |n||+1&&|a+8&&@1| |b@1| |c@1| |d@1| |e@1| |f@1| |g@1| |h@1| |i@1| |j@1| >k@1| |l@1| |m@1| |n@1| |o@1| |p@1| |q@1| |r@1|
+| +0&&@9| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
+|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|3|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|3|1| @10|A|l@1
+|:+0&&|w|i|n|d|o| |:|s|e|t| |c|u|r|s|o|r|l|i|n|e| @52
call delete('Xcul_screenline')
endfunc
+func Test_cursorline_cursorbind_horizontal_scroll()
+ CheckScreendump
+
+ let lines =<< trim END
+ call setline(1, 'aa bb cc dd ee ff gg hh ii jj kk ll mm' ..
+ \ ' nn oo pp qq rr ss tt uu vv ww xx yy zz')
+ set nowrap
+ " The following makes the cursor apparent on the screen dump
+ set sidescroll=1 cursorcolumn
+ " add empty lines, required for cursorcolumn
+ call append(1, ['','','',''])
+ 20vsp
+ windo :set cursorbind
+ END
+ call writefile(lines, 'Xhor_scroll')
+
+ let buf = RunVimInTerminal('-S Xhor_scroll', #{rows: 8})
+ call term_sendkeys(buf, "20l")
+ call VerifyScreenDump(buf, 'Test_hor_scroll_1', {})
+ call term_sendkeys(buf, "10l")
+ call VerifyScreenDump(buf, 'Test_hor_scroll_2', {})
+ call term_sendkeys(buf, ":windo :set cursorline\<cr>")
+ call term_sendkeys(buf, "0")
+ call term_sendkeys(buf, "20l")
+ call VerifyScreenDump(buf, 'Test_hor_scroll_3', {})
+ call term_sendkeys(buf, "10l")
+ call VerifyScreenDump(buf, 'Test_hor_scroll_4', {})
+
+ call StopVimInTerminal(buf)
+ "call delete('Xhor_scroll')
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4795,
/**/
4794,
/**/