# HG changeset patch # User Bram Moolenaar # Date 1365767102 -7200 # Node ID 015e53d9978721bbb9283a999c668c98ad2554a9 # Parent 73bdb401d109d139597ffc034f7177636ee9b54e updated for version 7.3.887 Problem: No tests for Visual mode operators, what 7.3.879 fixes. Solution: Add a new test file. (David B?rgin) diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak --- a/src/testdir/Make_amiga.mak +++ b/src/testdir/Make_amiga.mak @@ -32,7 +32,8 @@ SCRIPTS = test1.out test3.out test4.out test71.out test72.out test73.out test74.out test75.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 + test89.out test90.out test91.out test92.out test93.out \ + test94.out .SUFFIXES: .in .out @@ -142,3 +143,4 @@ test90.out: test90.in test91.out: test91.in test92.out: test92.in test93.out: test93.in +test94.out: test94.in diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak --- a/src/testdir/Make_dos.mak +++ b/src/testdir/Make_dos.mak @@ -31,7 +31,8 @@ SCRIPTS = test3.out test4.out test5.out test74.out test75.out test76.out test77.out test78.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 + test89.out test90.out test91.out test92.out test93.out \ + test94.out SCRIPTS32 = test50.out test70.out diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -51,7 +51,8 @@ SCRIPTS = test3.out test4.out test5.out test74.out test75.out test76.out test77.out test78.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 + test89.out test90.out test91.out test92.out test93.out \ + test94.out SCRIPTS32 = test50.out test70.out diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak --- a/src/testdir/Make_os2.mak +++ b/src/testdir/Make_os2.mak @@ -32,7 +32,8 @@ SCRIPTS = test1.out test3.out test4.out test71.out test72.out test73.out test74.out test75.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 + test89.out test90.out test91.out test92.out test93.out \ + test94.out .SUFFIXES: .in .out diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -4,7 +4,7 @@ # Authors: Zoltan Arpadffy, # Sandor Kopanyi, # -# Last change: 2013-02-21 +# Last change: 2013 Apr 12 # # 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. @@ -77,7 +77,7 @@ SCRIPT = test1.out test2.out test3.out test71.out test72.out test74.out test75.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 + test90.out test91.out test92.out test93.out test94.out # Known problems: # Test 30: a problem around mac format - unknown reason diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -28,7 +28,8 @@ SCRIPTS = test1.out test2.out test3.out test74.out test75.out test76.out test77.out test78.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 + test89.out test90.out test91.out test92.out test93.out \ + test94.out SCRIPTS_GUI = test16.out diff --git a/src/testdir/test94.in b/src/testdir/test94.in new file mode 100644 --- /dev/null +++ b/src/testdir/test94.in @@ -0,0 +1,98 @@ +Test for Visual mode and operators + +Tests for the two kinds of operations: Those executed with Visual mode +followed by an operator and those executed via Operator-pending mode. Also +part of the test are mappings, counts, and repetition with the . command. + +Test cases: +- Visual modes (v V CTRL-V) followed by an operator; count; repeating +- Visual mode maps; count; repeating + - Simple + - With an Ex command (custom text object) +- Operator-pending mode maps + - Simple + - With Ex command moving the cursor + - With Ex command and Visual selection (custom text object) +- Patch 7.3.879: Properly abort Ex command in Operator-pending mode + +STARTTEST +:so small.vim +:set nocp +: +:" User functions +:function MoveToCap() +: call search('\u', 'W') +:endfunction +:function SelectInCaps() +: let [line1, col1] = searchpos('\u', 'bcnW') +: let [line2, col2] = searchpos('.\u', 'nW') +: call setpos("'<", [0, line1, col1, 0]) +: call setpos("'>", [0, line2, col2, 0]) +: normal! gv +:endfunction +:function MoveToEndCount(count) +: normal! v:count . e +:endfunction +: +:" Visual modes followed by operator +/^apple +lvld.l3vd.: +/^line 1 +Vcnewlinej.j2Vd.: +/^xxxx +jlc l.l2c----l.: +: +:" Visual mode maps (movement and text object) +:vnoremap W /\u/s-1 +:vnoremap iW :call SelectInCaps() +/^Kiwi +vWcNol.fD2vd.: +/^Jambu +llviWc-l.l2vdl.: +: +:" Operator-pending mode maps (movement and text object) +:onoremap W /\u/ +:onoremap W :call MoveToCap() +:onoremap iW :call SelectInCaps() +/^Pineapple +cW-l.l2.l.: +/^Juniper +g?\WfD.: +/^Lemon +yiWPlciWNew: +: +:" Patch 7.3.879: Properly abort Operator-pending mode for "dv:" etc. +/^zzzz +dV: dv: :set noma | let v:errmsg = '' +d: :set ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed' +dv:dV::set noma | let v:errmsg = '' +d::set ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok' +:/^start:/+2,$w! test.out +:q! +ENDTEST + +start: + +apple banana cherry + +line 1 line 1 +line 2 line 2 +line 3 line 3 +line 4 line 4 +line 5 line 5 +line 6 line 6 + +xxxxxxxxxxxxx +xxxxxxxxxxxxx +xxxxxxxxxxxxx +xxxxxxxxxxxxx + +KiwiRaspberryDateWatermelonPeach +JambuRambutanBananaTangerineMango + +PineappleQuinceLoganberryOrangeGrapefruitKiwiZ +JuniperDurianZ +LemonNectarineZ + +zzzz +zzzz diff --git a/src/testdir/test94.ok b/src/testdir/test94.ok new file mode 100644 --- /dev/null +++ b/src/testdir/test94.ok @@ -0,0 +1,20 @@ +a y + +newline +newline + + --------x + --------x +xxxx--------x +xxxx--------x + +NoNoberryach +--ago + +----Z +WhavcreQhevnaZ +LemonNewNectarineZ + +zzz +ok +ok diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 887, +/**/ 886, /**/ 885,