# HG changeset patch # User Christian Brabandt # Date 1506187804 -7200 # Node ID 881564b89f9bcc03975e6f00119928451340cccd # Parent c9f1b01ee83d174b0390fc9d9af9f678e6e23559 patch 8.0.1140: still old style tests commit https://github.com/vim/vim/commit/bb3e6416f157f68799ccb6070fa2f91df6780e79 Author: Bram Moolenaar Date: Sat Sep 23 19:24:46 2017 +0200 patch 8.0.1140: still old style tests Problem: Still old style tests. Solution: Convert two tests to new style. (Yegappan Lakshmanan) diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -2105,7 +2105,7 @@ test1 \ test20 test25 test28 test29 \ test30 test31 test32 test33 test34 test36 test37 test38 test39 \ test40 test41 test42 test43 test44 test45 test48 test49 \ - test50 test52 test53 test54 test55 test56 test57 test59 \ + test50 test52 test53 test54 test55 test59 \ test60 test64 test66 test68 test69 \ test70 test72 test73 test77 test78 test79 \ test83 test85 test86 test87 test88 \ diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -40,8 +40,6 @@ SCRIPTS_ALL = \ test48.out \ test53.out \ test55.out \ - test56.out \ - test57.out \ test60.out \ test64.out \ test66.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 @@ -82,7 +82,7 @@ SCRIPT = test1.out test3.out test4.out test38.out test39.out test40.out test41.out test42.out \ test43.out test44.out test45.out \ test48.out test49.out test53.out test54.out \ - test55.out test56.out test57.out test60.out \ + test55.out test60.out \ test64.out \ test66.out test68.out test69.out \ test72.out \ diff --git a/src/testdir/test56.in b/src/testdir/test56.in deleted file mode 100644 --- a/src/testdir/test56.in +++ /dev/null @@ -1,21 +0,0 @@ -Test for script-local function. vim: set ft=vim : - -STARTTEST -:so small.vim -:" -:set nocp viminfo+=nviminfo -:/^start:/+1,/^end:/-1w! Xtest.vim -:source Xtest.vim -_x -:$-1,$wq! test.out -ENDTEST - -start: -fun DoLast() - call append(line('$'), "last line") -endfun -fun s:DoNothing() - call append(line('$'), "nothing line") -endfun -nnoremap _x :call DoNothing()call DoLast()delfunc DoNothingdelfunc DoLast -end: diff --git a/src/testdir/test56.ok b/src/testdir/test56.ok deleted file mode 100644 --- a/src/testdir/test56.ok +++ /dev/null @@ -1,2 +0,0 @@ -nothing line -last line diff --git a/src/testdir/test57.in b/src/testdir/test57.in deleted file mode 100644 --- a/src/testdir/test57.in +++ /dev/null @@ -1,545 +0,0 @@ -Tests for :sort command. vim: set ft=vim : - -STARTTEST -:so small.vim -:" -:/^t01:/+1,/^t02/-1sort -:/^t02:/+1,/^t03/-1sort n -:/^t03:/+1,/^t04/-1sort x -:/^t04:/+1,/^t05/-1sort u -:/^t05:/+1,/^t06/-1sort! -:/^t06:/+1,/^t07/-1sort! n -:/^t07:/+1,/^t08/-1sort! u -:/^t08:/+1,/^t09/-1sort o -:/^t09:/+1,/^t10/-1sort! x -:/^t10:/+1,/^t11/-1sort/./ -:/^t11:/+1,/^t12/-1sort/../ -:/^t12:/+1,/^t13/-1sort/../u -:/^t13:/+1,/^t14/-1sort/./n -:/^t14:/+1,/^t15/-1sort/./r -:/^t15:/+1,/^t16/-1sort/../r -:/^t16:/+1,/^t17/-1sort/./rn -:/^t17:/+1,/^t18/-1sort/\d/ -:/^t18:/+1,/^t19/-1sort/\d/r -:/^t19:/+1,/^t20/-1sort/\d/n -:/^t20:/+1,/^t21/-1sort/\d/rn -:/^t21:/+1,/^t22/-1sort/\d\d/ -:/^t22:/+1,/^t23/-1sort/\d\d/n -:/^t23:/+1,/^t24/-1sort/\d\d/x -:/^t24:/+1,/^t25/-1sort/\d\d/r -:/^t25:/+1,/^t26/-1sort/\d\d/rn -:/^t26:/+1,/^t27/-1sort/\d\d/rx -:/^t27:/+1,/^t28/-1sort no -:/^t28:/+1,/^t29/-1sort b -:/^t29:/+1,/^t30/-1sort b -:/^t30:/+1,/^t31/-1sort f -:/^t01:/,$wq! test.out -ENDTEST - -t01: alphebetical -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t02: numeric -abc -ab -a321 -a123 -a122 -a -x-22 -b321 -b123 - -c123d --24 - 123b -c321d -0 -b322b -b321 -b321b - - -t03: hexadecimal -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t04: alpha, unique -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t05: alpha, reverse -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t06: numeric, reverse -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t07: unique, reverse -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t08: octal -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t09: reverse, hexadecimal -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t10: alpha, skip first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t11: alpha, skip first 2 characters -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t12: alpha, unique, skip first 2 characters -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t13: numeric, skip first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t14: alpha, sort on first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t15: alpha, sort on first 2 characters -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t16: numeric, sort on first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t17: alpha, skip past first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t18: alpha, sort on first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t19: numeric, skip past first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t20: numeric, sort on first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t21: alpha, skip past first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t22: numeric, skip past first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t23: hexadecimal, skip past first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t24: alpha, sort on first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t25: numeric, sort on first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t26: hexadecimal, sort on first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t27: wrong arguments -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t28: binary -0b111000 -0b101100 -0b101001 -0b101001 -0b101000 -0b000000 -0b001000 -0b010000 -0b101000 -0b100000 -0b101010 -0b100010 -0b100100 -0b100010 - - -t29: binary with leading characters -0b100010 -0b010000 - 0b101001 -b0b101100 -0b100010 - 0b100100 -a0b001000 -0b101000 -0b101000 -a0b101001 -ab0b100000 -0b101010 -0b000000 -b0b111000 - - -t30: float -1.234 -0.88 -123.456 -1.15e-6 --1.1e3 --1.01e3 - - -t31: done diff --git a/src/testdir/test57.ok b/src/testdir/test57.ok deleted file mode 100644 --- a/src/testdir/test57.ok +++ /dev/null @@ -1,501 +0,0 @@ -t01: alphebetical - - - 123b -a -a122 -a123 -a321 -ab -abc -b123 -b321 -b321 -b321b -b322b -c123d -c321d -t02: numeric -abc -ab -a - - - --24 -x-22 -0 -a122 -a123 -b123 -c123d - 123b -a321 -b321 -c321d -b321 -b321b -b322b -t03: hexadecimal - - -a -ab -abc - 123b -a122 -a123 -a321 -b123 -b321 -b321 -b321b -b322b -c123d -c321d -t04: alpha, unique - - 123b -a -a122 -a123 -a321 -ab -abc -b123 -b321 -b321b -b322b -c123d -c321d -t05: alpha, reverse -c321d -c123d -b322b -b321b -b321 -b321 -b123 -abc -ab -a321 -a123 -a122 -a - 123b - - -t06: numeric, reverse -b322b -b321b -b321 -c321d -b321 -a321 - 123b -c123d -b123 -a123 -a122 - - -a -ab -abc -t07: unique, reverse -c321d -c123d -b322b -b321b -b321 -b123 -abc -ab -a321 -a123 -a122 -a - 123b - -t08: octal -abc -ab -a - - -a122 -a123 -b123 -c123d - 123b -a321 -b321 -c321d -b321 -b321b -b322b -t09: reverse, hexadecimal -c321d -c123d -b322b -b321b -b321 -b321 -b123 -a321 -a123 -a122 - 123b -abc -ab -a - - -t10: alpha, skip first character -a - - -a122 -a123 -b123 - 123b -c123d -a321 -b321 -b321 -b321b -c321d -b322b -ab -abc -t11: alpha, skip first 2 characters -ab -a - - -a321 -b321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -abc -t12: alpha, unique, skip first 2 characters -ab -a - -a321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -abc -t13: numeric, skip first character -abc -ab -a - - -a122 -a123 -b123 -c123d - 123b -a321 -b321 -c321d -b321 -b321b -b322b -t14: alpha, sort on first character - - - 123b -abc -ab -a -a321 -a123 -a122 -b321 -b123 -b322b -b321 -b321b -c123d -c321d -t15: alpha, sort on first 2 characters -a - - - 123b -a123 -a122 -a321 -abc -ab -b123 -b321 -b322b -b321 -b321b -c123d -c321d -t16: numeric, sort on first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t17: alpha, skip past first digit -abc -ab -a - - -a321 -b321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -t18: alpha, sort on first digit -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t19: numeric, skip past first digit -abc -ab -a - - -a321 -b321 -c321d -b321 -b321b -a122 -b322b -a123 -b123 -c123d - 123b -t20: numeric, sort on first digit -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t21: alpha, skip past first 2 digits -abc -ab -a - - -a321 -b321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -t22: numeric, skip past first 2 digits -abc -ab -a - - -a321 -b321 -c321d -b321 -b321b -a122 -b322b -a123 -b123 -c123d - 123b -t23: hexadecimal, skip past first 2 digits -abc -ab -a - - -a321 -b321 -b321 -a122 -a123 -b123 -b321b -c321d -b322b - 123b -c123d -t24: alpha, sort on first 2 digits -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t25: numeric, sort on first 2 digits -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t26: hexadecimal, sort on first 2 digits -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t27: wrong arguments -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t28: binary - - -0b000000 -0b001000 -0b010000 -0b100000 -0b100010 -0b100010 -0b100100 -0b101000 -0b101000 -0b101001 -0b101001 -0b101010 -0b101100 -0b111000 -t29: binary with leading characters - - -0b000000 -a0b001000 -0b010000 -ab0b100000 -0b100010 -0b100010 - 0b100100 -0b101000 -0b101000 - 0b101001 -a0b101001 -0b101010 -b0b101100 -b0b111000 -t30: float - - --1.1e3 --1.01e3 -1.15e-6 -0.88 -1.234 -123.456 -t31: done diff --git a/src/testdir/test_sort.vim b/src/testdir/test_sort.vim --- a/src/testdir/test_sort.vim +++ b/src/testdir/test_sort.vim @@ -44,3 +44,1141 @@ func Test_sort_default() call assert_equal(['2', 'A', 'a', 'AA', 1, 3.3], sort([3.3, 1, "2", "A", "a", "AA"], 1)) call assert_fails('call sort([3.3, 1, "2"], 3)', "E474") endfunc + +" Tests for the :sort command +func Test_sort_cmd() + let tests = [ + \ { + \ 'name' : 'Alphabetical sort', + \ 'cmd' : '%sort', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ ' 123b', + \ 'a', + \ 'a122', + \ 'a123', + \ 'a321', + \ 'ab', + \ 'abc', + \ 'b123', + \ 'b321', + \ 'b321', + \ 'b321b', + \ 'b322b', + \ 'c123d', + \ 'c321d' + \ ] + \ }, + \ { + \ 'name' : 'Numeric sort', + \ 'cmd' : '%sort n', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'a', + \ 'x-22', + \ 'b321', + \ 'b123', + \ '', + \ 'c123d', + \ '-24', + \ ' 123b', + \ 'c321d', + \ '0', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '-24', + \ 'x-22', + \ '0', + \ 'a122', + \ 'a123', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b321', + \ 'b321b', + \ 'b322b' + \ ] + \ }, + \ { + \ 'name' : 'Hexadecimal sort', + \ 'cmd' : '%sort x', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ 'a', + \ 'ab', + \ 'abc', + \ ' 123b', + \ 'a122', + \ 'a123', + \ 'a321', + \ 'b123', + \ 'b321', + \ 'b321', + \ 'b321b', + \ 'b322b', + \ 'c123d', + \ 'c321d' + \ ] + \ }, + \ { + \ 'name' : 'Alphabetical unique sort', + \ 'cmd' : '%sort u', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ ' 123b', + \ 'a', + \ 'a122', + \ 'a123', + \ 'a321', + \ 'ab', + \ 'abc', + \ 'b123', + \ 'b321', + \ 'b321b', + \ 'b322b', + \ 'c123d', + \ 'c321d' + \ ] + \ }, + \ { + \ 'name' : 'Alphabetical reverse sort', + \ 'cmd' : '%sort!', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ 'c321d', + \ 'c123d', + \ 'b322b', + \ 'b321b', + \ 'b321', + \ 'b321', + \ 'b123', + \ 'abc', + \ 'ab', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'a', + \ ' 123b', + \ ] + \ }, + \ { + \ 'name' : 'Numeric reverse sort', + \ 'cmd' : '%sort! n', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ 'b322b', + \ 'b321b', + \ 'b321', + \ 'c321d', + \ 'b321', + \ 'a321', + \ ' 123b', + \ 'c123d', + \ 'b123', + \ 'a123', + \ 'a122', + \ 'a', + \ 'ab', + \ 'abc' + \ ] + \ }, + \ { + \ 'name' : 'Unique reverse sort', + \ 'cmd' : 'sort! u', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ], + \ 'expected' : [ + \ 'c321d', + \ 'c123d', + \ 'b322b', + \ 'b321b', + \ 'b321', + \ 'b123', + \ 'abc', + \ 'ab', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'a', + \ ' 123b', + \ ] + \ }, + \ { + \ 'name' : 'Octal sort', + \ 'cmd' : 'sort o', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a122', + \ 'a123', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b321', + \ 'b321b', + \ 'b322b' + \ ] + \ }, + \ { + \ 'name' : 'Reverse hexadecimal sort', + \ 'cmd' : 'sort! x', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'c321d', + \ 'c123d', + \ 'b322b', + \ 'b321b', + \ 'b321', + \ 'b321', + \ 'b123', + \ 'a321', + \ 'a123', + \ 'a122', + \ ' 123b', + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '' + \ ] + \ }, + \ { + \ 'name' : 'Alpha (skip first character) sort', + \ 'cmd' : 'sort/./', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'a', + \ '', + \ '', + \ 'a122', + \ 'a123', + \ 'b123', + \ ' 123b', + \ 'c123d', + \ 'a321', + \ 'b321', + \ 'b321', + \ 'b321b', + \ 'c321d', + \ 'b322b', + \ 'ab', + \ 'abc' + \ ] + \ }, + \ { + \ 'name' : 'Alpha (skip first 2 characters) sort', + \ 'cmd' : 'sort/../', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a321', + \ 'b321', + \ 'b321', + \ 'b321b', + \ 'c321d', + \ 'a122', + \ 'b322b', + \ 'a123', + \ 'b123', + \ ' 123b', + \ 'c123d', + \ 'abc' + \ ] + \ }, + \ { + \ 'name' : 'alpha, unique, skip first 2 characters', + \ 'cmd' : 'sort/../u', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'ab', + \ 'a', + \ '', + \ 'a321', + \ 'b321', + \ 'b321b', + \ 'c321d', + \ 'a122', + \ 'b322b', + \ 'a123', + \ 'b123', + \ ' 123b', + \ 'c123d', + \ 'abc' + \ ] + \ }, + \ { + \ 'name' : 'numeric, skip first character', + \ 'cmd' : 'sort/./n', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a122', + \ 'a123', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b321', + \ 'b321b', + \ 'b322b' + \ ] + \ }, + \ { + \ 'name' : 'alpha, sort on first character', + \ 'cmd' : 'sort/./r', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ '', + \ '', + \ ' 123b', + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ 'c123d', + \ 'c321d' + \ ] + \ }, + \ { + \ 'name' : 'alpha, sort on first 2 characters', + \ 'cmd' : 'sort/../r', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'a', + \ '', + \ '', + \ ' 123b', + \ 'a123', + \ 'a122', + \ 'a321', + \ 'abc', + \ 'ab', + \ 'b123', + \ 'b321', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ 'c123d', + \ 'c321d' + \ ] + \ }, + \ { + \ 'name' : 'numeric, sort on first character', + \ 'cmd' : 'sort/./rn', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ] + \ }, + \ { + \ 'name' : 'alpha, skip past first digit', + \ 'cmd' : 'sort/\d/', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a321', + \ 'b321', + \ 'b321', + \ 'b321b', + \ 'c321d', + \ 'a122', + \ 'b322b', + \ 'a123', + \ 'b123', + \ ' 123b', + \ 'c123d' + \ ] + \ }, + \ { + \ 'name' : 'alpha, sort on first digit', + \ 'cmd' : 'sort/\d/r', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a123', + \ 'a122', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ] + \ }, + \ { + \ 'name' : 'numeric, skip past first digit', + \ 'cmd' : 'sort/\d/n', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b321', + \ 'b321b', + \ 'a122', + \ 'b322b', + \ 'a123', + \ 'b123', + \ 'c123d', + \ ' 123b' + \ ] + \ }, + \ { + \ 'name' : 'numeric, sort on first digit', + \ 'cmd' : 'sort/\d/rn', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a123', + \ 'a122', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ] + \ }, + \ { + \ 'name' : 'alpha, skip past first 2 digits', + \ 'cmd' : 'sort/\d\d/', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a321', + \ 'b321', + \ 'b321', + \ 'b321b', + \ 'c321d', + \ 'a122', + \ 'b322b', + \ 'a123', + \ 'b123', + \ ' 123b', + \ 'c123d' + \ ] + \ }, + \ { + \ 'name' : 'numeric, skip past first 2 digits', + \ 'cmd' : 'sort/\d\d/n', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b321', + \ 'b321b', + \ 'a122', + \ 'b322b', + \ 'a123', + \ 'b123', + \ 'c123d', + \ ' 123b' + \ ] + \ }, + \ { + \ 'name' : 'hexadecimal, skip past first 2 digits', + \ 'cmd' : 'sort/\d\d/x', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a321', + \ 'b321', + \ 'b321', + \ 'a122', + \ 'a123', + \ 'b123', + \ 'b321b', + \ 'c321d', + \ 'b322b', + \ ' 123b', + \ 'c123d' + \ ] + \ }, + \ { + \ 'name' : 'alpha, sort on first 2 digits', + \ 'cmd' : 'sort/\d\d/r', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a123', + \ 'a122', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ] + \ }, + \ { + \ 'name' : 'numeric, sort on first 2 digits', + \ 'cmd' : 'sort/\d\d/rn', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a123', + \ 'a122', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ] + \ }, + \ { + \ 'name' : 'hexadecimal, sort on first 2 digits', + \ 'cmd' : 'sort/\d\d/rx', + \ 'input' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ 'a321', + \ 'a123', + \ 'a122', + \ 'b321', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ 'abc', + \ 'ab', + \ 'a', + \ '', + \ '', + \ 'a123', + \ 'a122', + \ 'b123', + \ 'c123d', + \ ' 123b', + \ 'a321', + \ 'b321', + \ 'c321d', + \ 'b322b', + \ 'b321', + \ 'b321b' + \ ] + \ }, + \ { + \ 'name' : 'binary', + \ 'cmd' : 'sort b', + \ 'input' : [ + \ '0b111000', + \ '0b101100', + \ '0b101001', + \ '0b101001', + \ '0b101000', + \ '0b000000', + \ '0b001000', + \ '0b010000', + \ '0b101000', + \ '0b100000', + \ '0b101010', + \ '0b100010', + \ '0b100100', + \ '0b100010', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ '', + \ '', + \ '0b000000', + \ '0b001000', + \ '0b010000', + \ '0b100000', + \ '0b100010', + \ '0b100010', + \ '0b100100', + \ '0b101000', + \ '0b101000', + \ '0b101001', + \ '0b101001', + \ '0b101010', + \ '0b101100', + \ '0b111000' + \ ] + \ }, + \ { + \ 'name' : 'binary with leading characters', + \ 'cmd' : 'sort b', + \ 'input' : [ + \ '0b100010', + \ '0b010000', + \ ' 0b101001', + \ 'b0b101100', + \ '0b100010', + \ ' 0b100100', + \ 'a0b001000', + \ '0b101000', + \ '0b101000', + \ 'a0b101001', + \ 'ab0b100000', + \ '0b101010', + \ '0b000000', + \ 'b0b111000', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ '', + \ '', + \ '0b000000', + \ 'a0b001000', + \ '0b010000', + \ 'ab0b100000', + \ '0b100010', + \ '0b100010', + \ ' 0b100100', + \ '0b101000', + \ '0b101000', + \ ' 0b101001', + \ 'a0b101001', + \ '0b101010', + \ 'b0b101100', + \ 'b0b111000' + \ ] + \ }, + \ { + \ 'name' : 'float', + \ 'cmd' : 'sort f', + \ 'input' : [ + \ '1.234', + \ '0.88', + \ '123.456', + \ '1.15e-6', + \ '-1.1e3', + \ '-1.01e3', + \ '', + \ '' + \ ], + \ 'expected' : [ + \ '', + \ '', + \ '-1.1e3', + \ '-1.01e3', + \ '1.15e-6', + \ '0.88', + \ '1.234', + \ '123.456' + \ ] + \ } + \ ] + + for t in tests + enew! + call append(0, t.input) + $delete _ + exe t.cmd + call assert_equal(t.expected, getline(1, '$'), t.name) + endfor + + call assert_fails('sort no', 'E474') + + enew! +endfunc diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim --- a/src/testdir/test_vimscript.vim +++ b/src/testdir/test_vimscript.vim @@ -1421,6 +1421,26 @@ func Test_user_command_with_bang() delcommand Nieuw endfunc +" Test for script-local function +func DoLast() + call append(line('$'), "last line") +endfunc + +func s:DoNothing() + call append(line('$'), "nothing line") +endfunc + +func Test_script_local_func() + set nocp viminfo+=nviminfo + new + nnoremap _x :call DoNothing()call DoLast()delfunc DoNothingdelfunc DoLast + + normal _x + call assert_equal('nothing line', getline(2)) + call assert_equal('last line', getline(3)) + enew! | close +endfunc + "------------------------------------------------------------------------------- " Modelines {{{1 " vim: ts=8 sw=4 tw=80 fdm=marker diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1140, +/**/ 1139, /**/ 1138,