To: vim_dev@googlegroups.com Subject: Patch 8.0.1140 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.1140 Problem: Still old style tests. Solution: Convert two tests to new style. (Yegappan Lakshmanan) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test56.in, src/testdir/test56.ok, src/testdir/test57.in, src/testdir/test57.ok, src/testdir/test_sort.vim, src/testdir/test_vimscript.vim *** ../vim-8.0.1139/src/Makefile 2017-09-17 23:02:17.168074448 +0200 --- src/Makefile 2017-09-23 19:07:39.468863252 +0200 *************** *** 2105,2111 **** 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 \ test60 test64 test66 test68 test69 \ test70 test72 test73 test77 test78 test79 \ test83 test85 test86 test87 test88 \ --- 2106,2112 ---- 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 test59 \ test60 test64 test66 test68 test69 \ test70 test72 test73 test77 test78 test79 \ test83 test85 test86 test87 test88 \ *** ../vim-8.0.1139/src/testdir/Make_all.mak 2017-09-17 23:02:17.172074424 +0200 --- src/testdir/Make_all.mak 2017-09-23 18:58:18.068229369 +0200 *************** *** 40,47 **** test48.out \ test53.out \ test55.out \ - test56.out \ - test57.out \ test60.out \ test64.out \ test66.out \ --- 40,45 ---- *** ../vim-8.0.1139/src/testdir/Make_vms.mms 2017-08-30 20:21:54.254963240 +0200 --- src/testdir/Make_vms.mms 2017-09-23 18:58:18.068229369 +0200 *************** *** 82,88 **** 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 \ test64.out \ test66.out test68.out test69.out \ test72.out \ --- 82,88 ---- 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 test60.out \ test64.out \ test66.out test68.out test69.out \ test72.out \ *** ../vim-8.0.1139/src/testdir/test56.in 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test56.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,21 **** - 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: --- 0 ---- *** ../vim-8.0.1139/src/testdir/test56.ok 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test56.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,2 **** - nothing line - last line --- 0 ---- *** ../vim-8.0.1139/src/testdir/test57.in 2016-01-19 23:25:02.000000000 +0100 --- src/testdir/test57.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,545 **** - 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 --- 0 ---- *** ../vim-8.0.1139/src/testdir/test57.ok 2016-01-19 23:26:02.000000000 +0100 --- src/testdir/test57.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,501 **** - 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 --- 0 ---- *** ../vim-8.0.1139/src/testdir/test_sort.vim 2016-03-01 22:47:49.000000000 +0100 --- src/testdir/test_sort.vim 2017-09-23 18:58:18.072229346 +0200 *************** *** 44,46 **** --- 44,1184 ---- 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 *** ../vim-8.0.1139/src/testdir/test_vimscript.vim 2017-06-24 14:48:07.215493177 +0200 --- src/testdir/test_vimscript.vim 2017-09-23 18:58:18.072229346 +0200 *************** *** 1421,1426 **** --- 1421,1446 ---- 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 *** ../vim-8.0.1139/src/version.c 2017-09-23 16:33:40.857195233 +0200 --- src/version.c 2017-09-23 19:10:58.775666957 +0200 *************** *** 763,764 **** --- 763,766 ---- { /* Add new patch number below this line */ + /**/ + 1140, /**/ -- hundred-and-one symptoms of being an internet addict: 179. You wonder why your household garbage can doesn't have an "empty recycle bin" button. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///