Attached is a patch fixing E315 error caused by delete ex command not resetting visual selection.
Test included. Note that this is related to pressing Escape when in visual mode triggering a yank to the clipboard. This means that the problem might (but I'm not sure) be limited to X11 (so *nix, Cygwin). This might mean that the test file should source unix.vim. Or perhaps check for Vim having been compiled with X11 support. -- Lech Lorens -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
commit a233ca486957afc291df2f64b6f0ae1cf01aae64 Author: Lech Lorens <[email protected]> Date: Sat Oct 26 13:21:21 2013 +0200 Fix ml_get E315 problem. diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 24f80fb..1f6fd9b 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -8556,6 +8556,7 @@ ex_operators(eap) beginline(BL_SOL | BL_FIX); } + end_visual_mode(); switch (eap->cmdidx) { case CMD_delete: diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak index d155198..f89d99b 100644 --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -32,7 +32,8 @@ 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 test98.out test99.out + test94.out test95.out test96.out test98.out test99.out \ + test100.out SCRIPTS32 = test50.out test70.out diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak index 380594c..e94b002 100644 --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -52,7 +52,8 @@ 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 test98.out test99.out + test94.out test95.out test96.out test98.out test99.out \ + test100.out SCRIPTS32 = test50.out test70.out diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak index e7ec617..acb7bd7 100644 --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -34,7 +34,8 @@ 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 test98.out test99.out + test94.out test95.out test96.out test98.out test99.out \ + test100.out .SUFFIXES: .in .out diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms index 2001bfc..0ace93c 100644 --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -4,7 +4,7 @@ # Authors: Zoltan Arpadffy, <[email protected]> # Sandor Kopanyi, <[email protected]> # -# Last change: 2013 Sep 19 +# Last change: 2013 Oct 26 # # 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,8 @@ 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 test98.out test99.out + test95.out test96.out test97.out test98.out test99.out \ + test100.out # Known problems: # Test 30: a problem around mac format - unknown reason diff --git a/src/testdir/Makefile b/src/testdir/Makefile index f736d54..3620cee 100644 --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -30,7 +30,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.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 test98.out \ - test99.out + test99.out test100.out SCRIPTS_GUI = test16.out diff --git a/src/testdir/test100.in b/src/testdir/test100.in new file mode 100644 index 0000000..7c7591e --- /dev/null +++ b/src/testdir/test100.in @@ -0,0 +1,37 @@ +Test for visual mode not being reset causing E315 error. +STARTTEST +:so small.vim +:enew +:let g:msg="Everything's fine." +:function! TriggerTheProblem() +: " At this point there is no visual selection because :call reset it. +: " Let's restore the selection: +: normal gv +: '<,'>del _ +: try +: exe "normal \<Esc>" +: catch /^Vim\%((\a\+)\)\=:E315/ +: echom 'Snap! E315 error!' +: let g:msg='Snap! E315 error!' +: endtry +:endfunction +:enew +:setl buftype=nofile +:call append(line('$'), 'Delete this line.') +:" +:" +:" NOTE: this has to be done by a call to a function because executing :del the +:" ex-way will require the colon operator which resets the visual mode thus +:" preventing the problem: +:" +GV:call TriggerTheProblem() +:%del _ +:call append(line('$'), g:msg) +:w! test.out +:brewind +ENDTEST + +STARTTEST +:qa! +ENDTEST + diff --git a/src/testdir/test100.ok b/src/testdir/test100.ok new file mode 100644 index 0000000..9ea6dd6 --- /dev/null +++ b/src/testdir/test100.ok @@ -0,0 +1,2 @@ + +Everything's fine.
