summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-09-23 19:24:46 +0200
committerBram Moolenaar <Bram@vim.org>2017-09-23 19:24:46 +0200
commitbb3e6416f157f68799ccb6070fa2f91df6780e79 (patch)
tree804b580942f79c04f30507377d71a869130373b8
parenta21a6a9ade7bec3a07992d4d900d4ce82eeb8a29 (diff)
downloadvim-bb3e6416f157f68799ccb6070fa2f91df6780e79.zip
patch 8.0.1140: still old style tests
Problem: Still old style tests. Solution: Convert two tests to new style. (Yegappan Lakshmanan)
-rw-r--r--src/Makefile2
-rw-r--r--src/testdir/Make_all.mak2
-rw-r--r--src/testdir/Make_vms.mms2
-rw-r--r--src/testdir/test56.in21
-rw-r--r--src/testdir/test56.ok2
-rw-r--r--src/testdir/test57.in545
-rw-r--r--src/testdir/test57.ok501
-rw-r--r--src/testdir/test_sort.vim1138
-rw-r--r--src/testdir/test_vimscript.vim20
-rw-r--r--src/version.c2
10 files changed, 1162 insertions, 1073 deletions
diff --git a/src/Makefile b/src/Makefile
index ad96784a6..cecef8d44 100644
--- 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
index 169d84fd5..fe6aa5235 100644
--- 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
index e48789b6f..e4373965e 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -82,7 +82,7 @@ SCRIPT = test1.out test3.out test4.out test5.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
index 311a6004c..000000000
--- 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 <SID>DoLast()
- call append(line('$'), "last line")
-endfun
-fun s:DoNothing()
- call append(line('$'), "nothing line")
-endfun
-nnoremap <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
-end:
diff --git a/src/testdir/test56.ok b/src/testdir/test56.ok
deleted file mode 100644
index f2b0d33c8..000000000
--- 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
index 5f235358b..000000000
--- 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
index 452acf1fc..000000000
--- 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
index 25a6cea1b..4fddb47b5 100644
--- 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
index 29394c990..d653fa594 100644
--- 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 <SID>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 <buffer> _x :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
+
+ 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
index 3d5716e4c..cd09bc24b 100644
--- 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,