From fb177c2c48138ccf4cdc50f55100b71fe96f7d3c Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 12:05:53 +0800 Subject: [PATCH 1/7] vim-patch:7.4.2082 Problem: Not much test coverage for digraphs. Solution: Add a new style digraph test. (Christian Brabandt) https://github.com/vim/vim/commit/397eadbe25370394e0dc3cb18766533a15b8d1c0 --- src/nvim/testdir/test_alot.vim | 1 + src/nvim/testdir/test_digraph.vim | 430 ++++++++++++++++++++++++++++++ src/nvim/version.c | 2 +- 3 files changed, 432 insertions(+), 1 deletion(-) create mode 100644 src/nvim/testdir/test_digraph.vim diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index 60248bf430..0f0fa11f5d 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -4,6 +4,7 @@ source test_assign.vim source test_autocmd.vim source test_cursor_func.vim +source test_digraph.vim source test_execute_func.vim source test_ex_undo.vim source test_expr.vim diff --git a/src/nvim/testdir/test_digraph.vim b/src/nvim/testdir/test_digraph.vim new file mode 100644 index 0000000000..01180b6c25 --- /dev/null +++ b/src/nvim/testdir/test_digraph.vim @@ -0,0 +1,430 @@ +" Tests for digraphs + +if !has("digraphs") || !has("multi_byte") + finish +endif + +func! Put_Dig(chars) + exe "norm! o\".a:chars +endfu + +func! Put_Dig_BS(char1, char2) + exe "norm! o".a:char1."\".a:char2 +endfu + +func! Test_digraphs() + let _enc=&enc + set nocp enc=utf8 + new + call Put_Dig("00") + call assert_equal("∞", getline('.')) + " not a digraph + call Put_Dig("el") + call assert_equal("l", getline('.')) + call Put_Dig("ht") + call assert_equal("þ", getline('.')) + " digraph "ab" is the same as "ba" + call Put_Dig("ab") + call Put_Dig("ba") + call assert_equal(["ば","ば"], getline(line('.')-1,line('.'))) + " Euro sign + call Put_Dig("e=") + call Put_Dig("=e") + call Put_Dig("Eu") + call Put_Dig("uE") + call assert_equal(['е']+repeat(["€"],3), getline(line('.')-3,line('.'))) + " Rouble sign + call Put_Dig("R=") + call Put_Dig("=R") + call Put_Dig("=P") + call Put_Dig("P=") + call assert_equal(['Р']+repeat(["₽"],2)+['П'], getline(line('.')-3,line('.'))) + " Not a digraph + call Put_Dig("a\") + call Put_Dig("\a") + call assert_equal(["", "a"], getline(line('.')-1,line('.'))) + " Grave + call Put_Dig("a!") + call Put_Dig("!e") + call Put_Dig("b!") " not defined + call assert_equal(["à", "è", "!"], getline(line('.')-2,line('.'))) + " Acute accent + call Put_Dig("a'") + call Put_Dig("'e") + call Put_Dig("b'") " not defined + call assert_equal(["á", "é", "'"], getline(line('.')-2,line('.'))) + " Cicumflex + call Put_Dig("a>") + call Put_Dig(">e") + call Put_Dig("b>") " not defined + call assert_equal(['â', 'ê', '>'], getline(line('.')-2,line('.'))) + " Tilde + call Put_Dig("o~") + call Put_Dig("~u") " not defined + call Put_Dig("z~") " not defined + call assert_equal(['õ', 'u', '~'], getline(line('.')-2,line('.'))) + " Tilde + call Put_Dig("o?") + call Put_Dig("?u") + call Put_Dig("z?") " not defined + call assert_equal(['õ', 'ũ', '?'], getline(line('.')-2,line('.'))) + " Macron + call Put_Dig("o-") + call Put_Dig("-u") + call Put_Dig("z-") " not defined + call assert_equal(['ō', 'ū', '-'], getline(line('.')-2,line('.'))) + " Breve + call Put_Dig("o(") + call Put_Dig("(u") + call Put_Dig("z(") " not defined + call assert_equal(['ŏ', 'ŭ', '('], getline(line('.')-2,line('.'))) + " Dot above + call Put_Dig("b.") + call Put_Dig(".e") + call Put_Dig("a.") " not defined + call assert_equal(['ḃ', 'ė', '.'], getline(line('.')-2,line('.'))) + " Diaresis + call Put_Dig("a:") + call Put_Dig(":u") + call Put_Dig("b:") " not defined + call assert_equal(['ä', 'ü', ':'], getline(line('.')-2,line('.'))) + " Cedilla + call Put_Dig("',") + call Put_Dig(",C") + call Put_Dig("b,") " not defined + call assert_equal(['¸', 'Ç', ','], getline(line('.')-2,line('.'))) + " Underline + call Put_Dig("B_") + call Put_Dig("_t") + call Put_Dig("a_") " not defined + call assert_equal(['Ḇ', 'ṯ', '_'], getline(line('.')-2,line('.'))) + " Stroke + call Put_Dig("j/") + call Put_Dig("/l") + call Put_Dig("b/") " not defined + call assert_equal(['/', 'ł', '/'], getline(line('.')-2,line('.'))) + " Double acute + call Put_Dig('O"') + call Put_Dig('"y') + call Put_Dig('b"') " not defined + call assert_equal(['Ő', 'ÿ', '"'], getline(line('.')-2,line('.'))) + " Ogonek + call Put_Dig('u;') + call Put_Dig(';E') + call Put_Dig('b;') " not defined + call assert_equal(['ų', 'Ę', ';'], getline(line('.')-2,line('.'))) + " Caron + call Put_Dig('u<') + call Put_Dig('") + call Put_Dig("\A") + call assert_equal(['', 'A'], getline(line('.')-1,line('.'))) + " define some custom digraphs + " old: 00 ∞ + " old: el l + digraph 00 9216 + digraph el 0252 + call Put_Dig("00") + call Put_Dig("el") + " Reset digraphs + digraph 00 8734 + digraph el 108 + call Put_Dig("00") + call Put_Dig("el") + call assert_equal(['␀', 'ü', '∞', 'l'], getline(line('.')-3,line('.'))) + " reset encoding option + let &enc=_enc + bw! +endfunc + +func! Test_digraphs_option() + let _enc=&enc + " reset whichwrap option, so that testing A works, + " without moving up a line + set nocp enc=utf8 digraph ww= + new + call Put_Dig_BS("0","0") + call assert_equal("∞", getline('.')) + " not a digraph + call Put_Dig_BS("e","l") + call assert_equal("l", getline('.')) + call Put_Dig_BS("h","t") + call assert_equal("þ", getline('.')) + " digraph "ab" is the same as "ba" + call Put_Dig_BS("a","b") + call Put_Dig_BS("b","a") + call assert_equal(["ば","ば"], getline(line('.')-1,line('.'))) + " Euro sign + call Put_Dig_BS("e","=") + call Put_Dig_BS("=","e") + call Put_Dig_BS("E","u") + call Put_Dig_BS("u","E") + call assert_equal(['е']+repeat(["€"],3), getline(line('.')-3,line('.'))) + " Rouble sign + call Put_Dig_BS("R","=") + call Put_Dig_BS("=","R") + call Put_Dig_BS("=","P") + call Put_Dig_BS("P","=") + call assert_equal(['Р']+repeat(["₽"],2)+['П'], getline(line('.')-3,line('.'))) + " Not a digraph: this is different from ! + call Put_Dig_BS("a","\") + call Put_Dig_BS("\","a") + call assert_equal(['','a'], getline(line('.')-1,line('.'))) + " Grave + call Put_Dig_BS("a","!") + call Put_Dig_BS("!","e") + call Put_Dig_BS("b","!") " not defined + call assert_equal(["à", "è", "!"], getline(line('.')-2,line('.'))) + " Acute accent + call Put_Dig_BS("a","'") + call Put_Dig_BS("'","e") + call Put_Dig_BS("b","'") " not defined + call assert_equal(["á", "é", "'"], getline(line('.')-2,line('.'))) + " Cicumflex + call Put_Dig_BS("a",">") + call Put_Dig_BS(">","e") + call Put_Dig_BS("b",">") " not defined + call assert_equal(['â', 'ê', '>'], getline(line('.')-2,line('.'))) + " Tilde + call Put_Dig_BS("o","~") + call Put_Dig_BS("~","u") " not defined + call Put_Dig_BS("z","~") " not defined + call assert_equal(['õ', 'u', '~'], getline(line('.')-2,line('.'))) + " Tilde + call Put_Dig_BS("o","?") + call Put_Dig_BS("?","u") + call Put_Dig_BS("z","?") " not defined + call assert_equal(['õ', 'ũ', '?'], getline(line('.')-2,line('.'))) + " Macron + call Put_Dig_BS("o","-") + call Put_Dig_BS("-","u") + call Put_Dig_BS("z","-") " not defined + call assert_equal(['ō', 'ū', '-'], getline(line('.')-2,line('.'))) + " Breve + call Put_Dig_BS("o","(") + call Put_Dig_BS("(","u") + call Put_Dig_BS("z","(") " not defined + call assert_equal(['ŏ', 'ŭ', '('], getline(line('.')-2,line('.'))) + " Dot above + call Put_Dig_BS("b",".") + call Put_Dig_BS(".","e") + call Put_Dig_BS("a",".") " not defined + call assert_equal(['ḃ', 'ė', '.'], getline(line('.')-2,line('.'))) + " Diaresis + call Put_Dig_BS("a",":") + call Put_Dig_BS(":","u") + call Put_Dig_BS("b",":") " not defined + call assert_equal(['ä', 'ü', ':'], getline(line('.')-2,line('.'))) + " Cedilla + call Put_Dig_BS("'",",") + call Put_Dig_BS(",","C") + call Put_Dig_BS("b",",") " not defined + call assert_equal(['¸', 'Ç', ','], getline(line('.')-2,line('.'))) + " Underline + call Put_Dig_BS("B","_") + call Put_Dig_BS("_","t") + call Put_Dig_BS("a","_") " not defined + call assert_equal(['Ḇ', 'ṯ', '_'], getline(line('.')-2,line('.'))) + " Stroke + call Put_Dig_BS("j","/") + call Put_Dig_BS("/","l") + call Put_Dig_BS("b","/") " not defined + call assert_equal(['/', 'ł', '/'], getline(line('.')-2,line('.'))) + " Double acute + call Put_Dig_BS('O','"') + call Put_Dig_BS('"','y') + call Put_Dig_BS('b','"') " not defined + call assert_equal(['Ő', 'ÿ', '"'], getline(line('.')-2,line('.'))) + " Ogonek + call Put_Dig_BS('u',';') + call Put_Dig_BS(';','E') + call Put_Dig_BS('b',';') " not defined + call assert_equal(['ų', 'Ę', ';'], getline(line('.')-2,line('.'))) + " Caron + call Put_Dig_BS('u','<') + call Put_Dig_BS('<','E') + call Put_Dig_BS('b','<') " not defined + call assert_equal(['ǔ', 'Ě', '<'], getline(line('.')-2,line('.'))) + " Ring above + call Put_Dig_BS('u','0') + call Put_Dig_BS('0','E') " not defined + call Put_Dig_BS('b','0') " not defined + call assert_equal(['ů', 'E', '0'], getline(line('.')-2,line('.'))) + " Hook + call Put_Dig_BS('u','2') + call Put_Dig_BS('2','E') + call Put_Dig_BS('b','2') " not defined + call assert_equal(['ủ', 'Ẻ', '2'], getline(line('.')-2,line('.'))) + " Horn + call Put_Dig_BS('u','9') + call Put_Dig_BS('9','E') " not defined + call Put_Dig_BS('b','9') " not defined + call assert_equal(['ư', 'E', '9'], getline(line('.')-2,line('.'))) + " Cyrillic + call Put_Dig_BS('u','=') + call Put_Dig_BS('=','b') + call Put_Dig_BS('=','_') + call assert_equal(['у', 'б', '〓'], getline(line('.')-2,line('.'))) + " Greek + call Put_Dig_BS('u','*') + call Put_Dig_BS('*','b') + call Put_Dig_BS('*','_') + call assert_equal(['υ', 'β', '々'], getline(line('.')-2,line('.'))) + " Greek/Cyrillic special + call Put_Dig_BS('u','%') + call Put_Dig_BS('%','b') " not defined + call Put_Dig_BS('%','_') " not defined + call assert_equal(['ύ', 'b', '_'], getline(line('.')-2,line('.'))) + " Arabic + call Put_Dig_BS('u','+') + call Put_Dig_BS('+','b') + call Put_Dig_BS('+','_') " japanese industrial symbol + call assert_equal(['+', 'ب', '〄'], getline(line('.')-2,line('.'))) + " Hebrew + call Put_Dig_BS('Q','+') + call Put_Dig_BS('+','B') + call Put_Dig_BS('+','X') + call assert_equal(['ק', 'ב', 'ח'], getline(line('.')-2,line('.'))) + " Latin + call Put_Dig_BS('a','3') + call Put_Dig_BS('A','3') + call Put_Dig_BS('3','X') + call assert_equal(['ǣ', 'Ǣ', 'X'], getline(line('.')-2,line('.'))) + " Bopomofo + call Put_Dig_BS('a','4') + call Put_Dig_BS('A','4') + call Put_Dig_BS('4','X') + call assert_equal(['ㄚ', '4', 'X'], getline(line('.')-2,line('.'))) + " Hiragana + call Put_Dig_BS('a','5') + call Put_Dig_BS('A','5') + call Put_Dig_BS('5','X') + call assert_equal(['あ', 'ぁ', 'X'], getline(line('.')-2,line('.'))) + " Katakana + call Put_Dig_BS('a','6') + call Put_Dig_BS('A','6') + call Put_Dig_BS('6','X') + call assert_equal(['ァ', 'ア', 'X'], getline(line('.')-2,line('.'))) + " Superscripts + call Put_Dig_BS('1','S') + call Put_Dig_BS('2','S') + call Put_Dig_BS('3','S') + call assert_equal(['¹', '²', '³'], getline(line('.')-2,line('.'))) + " Subscripts + call Put_Dig_BS('1','s') + call Put_Dig_BS('2','s') + call Put_Dig_BS('3','s') + call assert_equal(['₁', '₂', '₃'], getline(line('.')-2,line('.'))) + " Eszet (only lowercase) + call Put_Dig_BS("s","s") + call Put_Dig_BS("S","S") " start of string + call assert_equal(["ß", "˜"], getline(line('.')-1,line('.'))) + " High bit set (different from ) + call Put_Dig_BS("a"," ") + call Put_Dig_BS(" ","A") + call assert_equal([' ', 'A'], getline(line('.')-1,line('.'))) + " Escape is not part of a digraph (different from ) + call Put_Dig_BS("a","\") + call Put_Dig_BS("\","A") + call assert_equal(['', ''], getline(line('.')-1,line('.'))) + " define some custom digraphs + " old: 00 ∞ + " old: el l + digraph 00 9216 + digraph el 0252 + call Put_Dig_BS("0","0") + call Put_Dig_BS("e","l") + " Reset digraphs + digraph 00 8734 + digraph el 108 + call Put_Dig_BS("0","0") + call Put_Dig_BS("e","l") + call assert_equal(['␀', 'ü', '∞', 'l'], getline(line('.')-3,line('.'))) + " reset encoding option + let &enc=_enc + set nodigraph ww&vim + bw! +endfunc + +" vim: tabstop=2 shiftwidth=0 sts=-1 expandtab diff --git a/src/nvim/version.c b/src/nvim/version.c index 7adf6781b9..dca7a4ebaf 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -358,7 +358,7 @@ static int included_patches[] = { // 2085, // 2084, // 2083, - // 2082, + 2082, 2081, // 2080, // 2079 NA From 775dfc600078a7f57602041bb87657504239a021 Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 12:23:00 +0800 Subject: [PATCH 2/7] vim-patch:7.4.2084 Problem: New digraph test makes testing hang. Solution: Don't set "nocp". https://github.com/vim/vim/commit/60084333816c585d5858bc085b2942f813102ae3 --- src/nvim/testdir/test_digraph.vim | 12 +++++++----- src/nvim/version.c | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/nvim/testdir/test_digraph.vim b/src/nvim/testdir/test_digraph.vim index 01180b6c25..b12e19fa7c 100644 --- a/src/nvim/testdir/test_digraph.vim +++ b/src/nvim/testdir/test_digraph.vim @@ -4,6 +4,8 @@ if !has("digraphs") || !has("multi_byte") finish endif +scriptencoding utf-8 + func! Put_Dig(chars) exe "norm! o\".a:chars endfu @@ -13,8 +15,8 @@ func! Put_Dig_BS(char1, char2) endfu func! Test_digraphs() - let _enc=&enc - set nocp enc=utf8 + let _enc = &enc + set enc=utf8 new call Put_Dig("00") call assert_equal("∞", getline('.')) @@ -214,7 +216,7 @@ func! Test_digraphs() call Put_Dig("el") call assert_equal(['␀', 'ü', '∞', 'l'], getline(line('.')-3,line('.'))) " reset encoding option - let &enc=_enc + let &enc = _enc bw! endfunc @@ -222,7 +224,7 @@ func! Test_digraphs_option() let _enc=&enc " reset whichwrap option, so that testing A works, " without moving up a line - set nocp enc=utf8 digraph ww= + set enc=utf8 digraph ww= new call Put_Dig_BS("0","0") call assert_equal("∞", getline('.')) @@ -422,7 +424,7 @@ func! Test_digraphs_option() call Put_Dig_BS("e","l") call assert_equal(['␀', 'ü', '∞', 'l'], getline(line('.')-3,line('.'))) " reset encoding option - let &enc=_enc + let &enc = _enc set nodigraph ww&vim bw! endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index dca7a4ebaf..ab7af85815 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -356,7 +356,7 @@ static int included_patches[] = { // 2087, 2086, // 2085, - // 2084, + 2084, // 2083, 2082, 2081, From 6f4a963e0eeae19aed1e58a80afc02cba1704808 Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 12:27:42 +0800 Subject: [PATCH 3/7] vim-patch:7.4.2085 Problem: Digraph tests fails on some systems. Solution: Run it separately and set 'encoding' early. https://github.com/vim/vim/commit/dfd63e30d13fff5603416b6c7e247cebeb003eb0 --- src/nvim/testdir/Makefile | 1 + src/nvim/testdir/test_alot.vim | 1 - src/nvim/testdir/test_digraph.vim | 10 ++-------- src/nvim/version.c | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 7bcc78e58a..59c93f1673 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -31,6 +31,7 @@ NEW_TESTS = \ test_bufwintabinfo.res \ test_cmdline.res \ test_cscope.res \ + test_digraph.res \ test_diffmode.res \ test_gn.res \ test_hardcopy.res \ diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index 0f0fa11f5d..60248bf430 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -4,7 +4,6 @@ source test_assign.vim source test_autocmd.vim source test_cursor_func.vim -source test_digraph.vim source test_execute_func.vim source test_ex_undo.vim source test_expr.vim diff --git a/src/nvim/testdir/test_digraph.vim b/src/nvim/testdir/test_digraph.vim index b12e19fa7c..60ae1fd3f4 100644 --- a/src/nvim/testdir/test_digraph.vim +++ b/src/nvim/testdir/test_digraph.vim @@ -4,6 +4,7 @@ if !has("digraphs") || !has("multi_byte") finish endif +set enc=utf-8 scriptencoding utf-8 func! Put_Dig(chars) @@ -15,8 +16,6 @@ func! Put_Dig_BS(char1, char2) endfu func! Test_digraphs() - let _enc = &enc - set enc=utf8 new call Put_Dig("00") call assert_equal("∞", getline('.')) @@ -215,16 +214,13 @@ func! Test_digraphs() call Put_Dig("00") call Put_Dig("el") call assert_equal(['␀', 'ü', '∞', 'l'], getline(line('.')-3,line('.'))) - " reset encoding option - let &enc = _enc bw! endfunc func! Test_digraphs_option() - let _enc=&enc " reset whichwrap option, so that testing A works, " without moving up a line - set enc=utf8 digraph ww= + set digraph ww= new call Put_Dig_BS("0","0") call assert_equal("∞", getline('.')) @@ -423,8 +419,6 @@ func! Test_digraphs_option() call Put_Dig_BS("0","0") call Put_Dig_BS("e","l") call assert_equal(['␀', 'ü', '∞', 'l'], getline(line('.')-3,line('.'))) - " reset encoding option - let &enc = _enc set nodigraph ww&vim bw! endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index ab7af85815..aab57e5765 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -355,7 +355,7 @@ static int included_patches[] = { // 2088, // 2087, 2086, - // 2085, + 2085, 2084, // 2083, 2082, From bec7e47938e203a0dd49920f328134fa943d6733 Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 12:50:50 +0800 Subject: [PATCH 4/7] vim-patch:7.4.2086 Problem: Using the system default encoding makes tests unpredictable. Solution: Always use utf-8 or latin1 in the new style tests. Remove setting encoding and scriptencoding where it is not needed. https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e --- src/nvim/testdir/test_digraph.vim | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/nvim/testdir/test_digraph.vim b/src/nvim/testdir/test_digraph.vim index 60ae1fd3f4..12cda4d461 100644 --- a/src/nvim/testdir/test_digraph.vim +++ b/src/nvim/testdir/test_digraph.vim @@ -4,9 +4,6 @@ if !has("digraphs") || !has("multi_byte") finish endif -set enc=utf-8 -scriptencoding utf-8 - func! Put_Dig(chars) exe "norm! o\".a:chars endfu From 1861f12a5fe2efd4c1747b1870d7d0740fef55f5 Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 12:52:04 +0800 Subject: [PATCH 5/7] vim-patch:7.4.2087 Problem: Digraph code test coverage is still low. Solution: Add more tests. (Christian Brabandt) https://github.com/vim/vim/commit/e25bc5abb4621c6263b0248988a207d53b57fc54 --- src/nvim/testdir/test_digraph.vim | 35 +++++++++++++++++++++++++++++++ src/nvim/version.c | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/nvim/testdir/test_digraph.vim b/src/nvim/testdir/test_digraph.vim index 12cda4d461..2840229007 100644 --- a/src/nvim/testdir/test_digraph.vim +++ b/src/nvim/testdir/test_digraph.vim @@ -420,4 +420,39 @@ func! Test_digraphs_option() bw! endfunc +func! Test_digraphs_output() + new + let out = execute(':digraph') + call assert_equal('Eu € 8364', matchstr(out, '\C\')) + call assert_equal('=e € 8364', matchstr(out, '\C=e\D*8364\>')) + call assert_equal('=R ₽ 8381', matchstr(out, '\C=R\D*8381\>')) + call assert_equal('=P ₽ 8381', matchstr(out, '\C=P\D*8381\>')) + call assert_equal('o: ö 246', matchstr(out, '\C\')) + call assert_equal('v4 ㄪ 12586', matchstr(out, '\C\')) + call assert_equal("'0 ˚ 730", matchstr(out, '\C''0\D*730\>')) + call assert_equal('Z% Ж 1046', matchstr(out, '\C\')) + call assert_equal('u- ū 363', matchstr(out, '\C\')) + call assert_equal('SH ^A 1', matchstr(out, '\C\')) + bw! +endfunc + +func! Test_loadkeymap() + new + set keymap=czech + set iminsert=0 + call feedkeys("o|\|01234567890|\", 'tx') + call assert_equal("|'é+ěščřžýáíé'", getline('.')) + " reset keymap and encoding option + set keymap= + bw! +endfunc + +func! Test_digraph_cmndline() + " Create digraph on commandline + " This is a hack, to let Vim create the digraph in commandline mode + let s = '' + exe "sil! norm! :let s.='\Eu'\" + call assert_equal("€", s) +endfunc + " vim: tabstop=2 shiftwidth=0 sts=-1 expandtab diff --git a/src/nvim/version.c b/src/nvim/version.c index aab57e5765..d8292a9aae 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -353,7 +353,7 @@ static int included_patches[] = { // 2090, // 2089 NA // 2088, - // 2087, + 2087, 2086, 2085, 2084, From c69bbc09642a579bfb5f9db6899b4f2454d32f9d Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 12:53:32 +0800 Subject: [PATCH 6/7] vim-patch:7.4.2088 Problem: Keymap test fails with normal features. Solution: Bail out if the keymap feature is not supported. https://github.com/vim/vim/commit/f36213597d737ab500771e87edcf121acd55e277 --- src/nvim/testdir/test_digraph.vim | 3 +++ src/nvim/version.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nvim/testdir/test_digraph.vim b/src/nvim/testdir/test_digraph.vim index 2840229007..95500853f2 100644 --- a/src/nvim/testdir/test_digraph.vim +++ b/src/nvim/testdir/test_digraph.vim @@ -437,6 +437,9 @@ func! Test_digraphs_output() endfunc func! Test_loadkeymap() + if !has('keymap') + return + endif new set keymap=czech set iminsert=0 diff --git a/src/nvim/version.c b/src/nvim/version.c index d8292a9aae..73b5c96be0 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -352,7 +352,7 @@ static int included_patches[] = { // 2091 NA // 2090, // 2089 NA - // 2088, + 2088, 2087, 2086, 2085, From ea87bf79f63d576cdbbe50ff46bc675b636c8454 Mon Sep 17 00:00:00 2001 From: lonerover Date: Wed, 4 Jan 2017 13:59:56 +0800 Subject: [PATCH 7/7] oldtest: Add vim-default for 'backspace' to runtest.vim --- src/nvim/testdir/runtest.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nvim/testdir/runtest.vim b/src/nvim/testdir/runtest.vim index eb5912086b..316aba968d 100644 --- a/src/nvim/testdir/runtest.vim +++ b/src/nvim/testdir/runtest.vim @@ -65,6 +65,7 @@ set shellslash " Align with vim defaults. set directory^=. set nohidden +set backspace= function RunTheTest(test) echo 'Executing ' . a:test