Mercurial > vim
annotate src/testdir/test_regexp_utf8.vim @ 26356:0884f2be6c2a v8.2.3709
patch 8.2.3709: Vim9: backtick expression expanded when not desired
Commit: https://github.com/vim/vim/commit/fad2742d538123abb9b384a053fd581f2acf6bb0
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Nov 30 21:58:19 2021 +0000
patch 8.2.3709: Vim9: backtick expression expanded when not desired
Problem: Vim9: backtick expression expanded when not desired.
Solution: Only expand a backtick expression for commands that expand their
argument. Remove a few outdated TODO comments.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 30 Nov 2021 23:00:04 +0100 |
parents | 1c999a6e9d92 |
children | fb4c30606b4a |
rev | line source |
---|---|
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Tests for regexp in utf8 encoding |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 func s:equivalence_test() |
24351
585695c70392
patch 8.2.2716: the equivalent class regexp is missing some characters
Bram Moolenaar <Bram@vim.org>
parents:
23471
diff
changeset
|
4 let str = "AÀÁÂÃÄÅĀĂĄǍǞǠǺȂȦȺḀẠẢẤẦẨẪẬẮẰẲẴẶ BƁɃḂḄḆ CÇĆĈĊČƇȻḈꞒ DĎĐƊḊḌḎḐḒ EÈÉÊËĒĔĖĘĚȄȆȨɆḔḖḘḚḜẸẺẼẾỀỂỄỆ FƑḞꞘ GĜĞĠĢƓǤǦǴḠꞠ HĤĦȞḢḤḦḨḪⱧ IÌÍÎÏĨĪĬĮİƗǏȈȊḬḮỈỊ JĴɈ KĶƘǨḰḲḴⱩꝀ LĹĻĽĿŁȽḶḸḺḼⱠ MḾṀṂ NÑŃŅŇǸṄṆṈṊꞤ OÒÓÔÕÖØŌŎŐƟƠǑǪǬǾȌȎȪȬȮȰṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢ PƤṔṖⱣ QɊ RŔŖŘȐȒɌṘṚṜṞⱤꞦ SŚŜŞŠȘṠṢṤṦṨⱾꞨ TŢŤŦƬƮȚȾṪṬṮṰ UÙÚÛÜŨŪŬŮŰƯǕǙǛǓǗȔȖɄṲṴṶṸṺỤỦỨỪỬỮỰ VƲṼṾ WŴẀẂẄẆẈ XẊẌ YÝŶŸƳȲɎẎỲỴỶỸ ZŹŻŽƵẐẒẔⱫ aàáâãäåāăąǎǟǡǻȃȧᶏḁẚạảấầẩẫậắằẳẵặⱥ bƀɓᵬᶀḃḅḇ cçćĉċčƈȼḉꞓꞔ dďđɗᵭᶁᶑḋḍḏḑḓ eèéêëēĕėęěȅȇȩɇᶒḕḗḙḛḝẹẻẽếềểễệ fƒᵮᶂḟꞙ gĝğġģǥǧǵɠᶃḡꞡ hĥħȟḣḥḧḩḫẖⱨꞕ iìíîïĩīĭįǐȉȋɨᶖḭḯỉị jĵǰɉ kķƙǩᶄḱḳḵⱪꝁ lĺļľŀłƚḷḹḻḽⱡ mᵯḿṁṃ nñńņňʼnǹᵰᶇṅṇṉṋꞥ oòóôõöøōŏőơǒǫǭǿȍȏȫȭȯȱɵṍṏṑṓọỏốồổỗộớờởỡợ pƥᵱᵽᶈṕṗ qɋʠ rŕŗřȑȓɍɽᵲᵳᶉṛṝṟꞧ sśŝşšșȿᵴᶊṡṣṥṧṩꞩ tţťŧƫƭțʈᵵṫṭṯṱẗⱦ uùúûüũūŭůűųǚǖưǔǘǜȕȗʉᵾᶙṳṵṷṹṻụủứừửữự vʋᶌṽṿ wŵẁẃẅẇẉẘ xẋẍ yýÿŷƴȳɏẏẙỳỵỷỹ zźżžƶᵶᶎẑẓẕⱬ" |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 let groups = split(str) |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 for group1 in groups |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 for c in split(group1, '\zs') |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 " next statement confirms that equivalence class matches every |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 " character in group |
24351
585695c70392
patch 8.2.2716: the equivalent class regexp is missing some characters
Bram Moolenaar <Bram@vim.org>
parents:
23471
diff
changeset
|
10 call assert_match('^[[=' .. c .. '=]]*$', group1) |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 for group2 in groups |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 if group2 != group1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 " next statement converts that equivalence class doesn't match |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 " character in any other group |
24351
585695c70392
patch 8.2.2716: the equivalent class regexp is missing some characters
Bram Moolenaar <Bram@vim.org>
parents:
23471
diff
changeset
|
15 call assert_equal(-1, match(group2, '[[=' .. c .. '=]]'), c) |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 endif |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 endfunc |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 func Test_equivalence_re1() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 set re=1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 call s:equivalence_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
25 set re=0 |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 endfunc |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 func Test_equivalence_re2() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 set re=2 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 call s:equivalence_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
31 set re=0 |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 endfunc |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
33 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
34 func s:classes_test() |
21407
6d8696fd4945
patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Bram Moolenaar <Bram@vim.org>
parents:
20772
diff
changeset
|
35 if has('win32') |
6d8696fd4945
patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Bram Moolenaar <Bram@vim.org>
parents:
20772
diff
changeset
|
36 set iskeyword=@,48-57,_,192-255 |
6d8696fd4945
patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Bram Moolenaar <Bram@vim.org>
parents:
20772
diff
changeset
|
37 endif |
8999
f414db42d167
commit https://github.com/vim/vim/commit/490465bda6ab66f78041709cc02f48a25486a3e5
Christian Brabandt <cb@256bit.org>
parents:
8995
diff
changeset
|
38 set isprint=@,161-255 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
39 call assert_equal('Motörhead', matchstr('Motörhead', '[[:print:]]\+')) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
40 |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
41 let alnumchars = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
42 let alphachars = '' |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
43 let backspacechar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
44 let blankchars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
45 let cntrlchars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
46 let digitchars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
47 let escapechar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
48 let graphchars = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
49 let lowerchars = '' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
50 let printchars = '' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
51 let punctchars = '' |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
52 let returnchar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
53 let spacechars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
54 let tabchar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
55 let upperchars = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
56 let xdigitchars = '' |
15709
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
57 let identchars = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
58 let identchars1 = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
59 let kwordchars = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
60 let kwordchars1 = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
61 let fnamechars = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
62 let fnamechars1 = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
63 let i = 1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
64 while i <= 255 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
65 let c = nr2char(i) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
66 if c =~ '[[:alpha:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
67 let alphachars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
68 endif |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
69 if c =~ '[[:alnum:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
70 let alnumchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
71 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
72 if c =~ '[[:backspace:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
73 let backspacechar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
74 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
75 if c =~ '[[:blank:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
76 let blankchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
77 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
78 if c =~ '[[:cntrl:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
79 let cntrlchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
80 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
81 if c =~ '[[:digit:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
82 let digitchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
83 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
84 if c =~ '[[:escape:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
85 let escapechar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
86 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
87 if c =~ '[[:graph:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
88 let graphchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
89 endif |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
90 if c =~ '[[:lower:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
91 let lowerchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
92 endif |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
93 if c =~ '[[:print:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
94 let printchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
95 endif |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
96 if c =~ '[[:punct:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
97 let punctchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
98 endif |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
99 if c =~ '[[:return:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
100 let returnchar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
101 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
102 if c =~ '[[:space:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
103 let spacechars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
104 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
105 if c =~ '[[:tab:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
106 let tabchar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
107 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
108 if c =~ '[[:upper:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
109 let upperchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
110 endif |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
111 if c =~ '[[:xdigit:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
112 let xdigitchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
113 endif |
15709
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
114 if c =~ '[[:ident:]]' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
115 let identchars .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
116 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
117 if c =~ '\i' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
118 let identchars1 .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
119 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
120 if c =~ '[[:keyword:]]' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
121 let kwordchars .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
122 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
123 if c =~ '\k' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
124 let kwordchars1 .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
125 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
126 if c =~ '[[:fname:]]' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
127 let fnamechars .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
128 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
129 if c =~ '\f' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
130 let fnamechars1 .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
131 endif |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
132 let i += 1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
133 endwhile |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
134 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
135 call assert_equal('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', alphachars) |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
136 call assert_equal('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', alnumchars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
137 call assert_equal("\b", backspacechar) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
138 call assert_equal("\t ", blankchars) |
11287
e800e8149a5b
patch 8.0.0529: line in test commented out
Christian Brabandt <cb@256bit.org>
parents:
11267
diff
changeset
|
139 call assert_equal("\x01\x02\x03\x04\x05\x06\x07\b\t\n\x0b\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f\x7f", cntrlchars) |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
140 call assert_equal("0123456789", digitchars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
141 call assert_equal("\<Esc>", escapechar) |
11287
e800e8149a5b
patch 8.0.0529: line in test commented out
Christian Brabandt <cb@256bit.org>
parents:
11267
diff
changeset
|
142 call assert_equal('!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~', graphchars) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
143 call assert_equal('abcdefghijklmnopqrstuvwxyzµßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ', lowerchars) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
144 call assert_equal(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ', printchars) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
145 call assert_equal('!"#$%&''()*+,-./:;<=>?@[\]^_`{|}~', punctchars) |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
146 call assert_equal('ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ', upperchars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
147 call assert_equal("\r", returnchar) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
148 call assert_equal("\t\n\x0b\f\r ", spacechars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
149 call assert_equal("\t", tabchar) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
150 call assert_equal('0123456789ABCDEFabcdef', xdigitchars) |
15709
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
151 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
152 if has('win32') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
153 let identchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz ¡¢£¤¥¦§µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
154 let kwordchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
155 elseif has('ebcdic') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
156 let identchars_ok = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz¬®µº¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
157 let kwordchars_ok = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz¬®µº¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
158 else |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
159 let identchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
160 let kwordchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
161 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
162 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
163 if has('win32') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
164 let fnamechars_ok = '!#$%+,-./0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_abcdefghijklmnopqrstuvwxyz{}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
165 elseif has('amiga') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
166 let fnamechars_ok = '$+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
167 elseif has('vms') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
168 let fnamechars_ok = '#$%+,-./0123456789:;<>ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
169 elseif has('ebcdic') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
170 let fnamechars_ok = '#$%+,-./=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
171 else |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
172 let fnamechars_ok = '#$%+,-./0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
173 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
174 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
175 call assert_equal(identchars_ok, identchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
176 call assert_equal(kwordchars_ok, kwordchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
177 call assert_equal(fnamechars_ok, fnamechars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
178 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
179 call assert_equal(identchars1, identchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
180 call assert_equal(kwordchars1, kwordchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
181 call assert_equal(fnamechars1, fnamechars) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
182 endfunc |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
183 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
184 func Test_classes_re1() |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
185 set re=1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
186 call s:classes_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
187 set re=0 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
188 endfunc |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
189 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
190 func Test_classes_re2() |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
191 set re=2 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
192 call s:classes_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
193 set re=0 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
194 endfunc |
11480
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
195 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
196 func Test_reversed_range() |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
197 for re in range(0, 2) |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
198 exe 'set re=' . re |
24351
585695c70392
patch 8.2.2716: the equivalent class regexp is missing some characters
Bram Moolenaar <Bram@vim.org>
parents:
23471
diff
changeset
|
199 call assert_fails('call match("abc def", "[c-a]")', 'E944:', re) |
11480
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
200 endfor |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
201 set re=0 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
202 endfunc |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
203 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
204 func Test_large_class() |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
205 set re=1 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
206 call assert_fails('call match("abc def", "[\u3000-\u4000]")', 'E945:') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
207 set re=2 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
208 call assert_equal(0, 'abc def' =~# '[\u3000-\u4000]') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
209 call assert_equal(1, "\u3042" =~# '[\u3000-\u4000]') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
210 set re=0 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
211 endfunc |
17444
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
212 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
213 func Test_optmatch_toolong() |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
214 set re=1 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
215 " Can only handle about 8000 characters. |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
216 let pat = '\\%[' .. repeat('x', 9000) .. ']' |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
217 call assert_fails('call match("abc def", "' .. pat .. '")', 'E339:') |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
218 set re=0 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
219 endfunc |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
220 |
18906
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
221 " Test for regexp patterns with multi-byte support, using utf-8. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
222 func Test_multibyte_chars() |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
223 " tl is a List of Lists with: |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
224 " 2: test auto/old/new 0: test auto/old 1: test auto/new |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
225 " regexp pattern |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
226 " text to test the pattern on |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
227 " expected match (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
228 " expected submatch 1 (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
229 " expected submatch 2 (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
230 " etc. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
231 " When there is no match use only the first two items. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
232 let tl = [] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
233 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
234 " Multi-byte character tests. These will fail unless vim is compiled |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
235 " with Multibyte (FEAT_MBYTE) or BIG/HUGE features. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
236 call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
237 call add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ']) " equivalence classes |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
238 call add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oijasoifjos']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
239 call add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
240 call add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
241 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
242 " this is not a normal "i" but 0xec |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
243 call add(tl, [2, '\p\+', 'ìa', 'ìa']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
244 call add(tl, [2, '\p*', 'aあ', 'aあ']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
245 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
246 " Test recognition of some character classes |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
247 call add(tl, [2, '\i\+', '&*¨xx ', 'xx']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
248 call add(tl, [2, '\f\+', '&*fname ', 'fname']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
249 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
250 " Test composing character matching |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
251 call add(tl, [2, '.ม', 'xม่x yมy', 'yม']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
252 call add(tl, [2, '.ม่', 'xม่x yมy', 'xม่']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
253 call add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
254 call add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
255 call add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
256 call add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
257 call add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
258 call add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
259 call add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
260 call add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
261 call add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
262 call add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
263 call add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
264 call add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
265 call add(tl, [2, "a", "ca\u0300t"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
266 call add(tl, [2, "ca", "ca\u0300t"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
267 call add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
268 call add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
269 call add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
270 call add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
271 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
272 " Test \Z |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
273 call add(tl, [2, 'ú\Z', 'x']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
274 call add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
275 call add(tl, [2, 'יְהוָה\Z', 'יהוה', 'יהוה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
276 call add(tl, [2, 'יהוה\Z', 'יְהוָה', 'יְהוָה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
277 call add(tl, [2, 'יְהוָה\Z', 'יְהוָה', 'יְהוָה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
278 call add(tl, [2, 'יְ\Z', 'וְיַ', 'יַ']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
279 call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
280 call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
281 call add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
282 call add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
283 call add(tl, [2, "\u05b9\\Z", "xyz"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
284 call add(tl, [2, "\\Z\u05b9", "xyz"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
285 call add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
286 call add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
287 call add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
288 call add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
289 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
290 " Combining different tests and features |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
291 call add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
292 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
293 " Run the tests |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
294 for t in tl |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
295 let re = t[0] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
296 let pat = t[1] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
297 let text = t[2] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
298 let matchidx = 3 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
299 for engine in [0, 1, 2] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
300 if engine == 2 && re == 0 || engine == 1 && re == 1 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
301 continue |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
302 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
303 let ®expengine = engine |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
304 try |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
305 let l = matchlist(text, pat) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
306 catch |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
307 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
308 \ '\", text: \"' . text . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
309 \ '\", caused an exception: \"' . v:exception . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
310 endtry |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
311 " check the match itself |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
312 if len(l) == 0 && len(t) > matchidx |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
313 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
314 \ '\", text: \"' . text . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
315 \ '\", did not match, expected: \"' . t[matchidx] . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
316 elseif len(l) > 0 && len(t) == matchidx |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
317 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
318 \ '\", text: \"' . text . '\", match: \"' . l[0] . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
319 \ '\", expected no match') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
320 elseif len(t) > matchidx && l[0] != t[matchidx] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
321 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
322 \ '\", text: \"' . text . '\", match: \"' . l[0] . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
323 \ '\", expected: \"' . t[matchidx] . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
324 else |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
325 " Test passed |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
326 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
327 if len(l) > 0 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
328 " check all the nine submatches |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
329 for i in range(1, 9) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
330 if len(t) <= matchidx + i |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
331 let e = '' |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
332 else |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
333 let e = t[matchidx + i] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
334 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
335 if l[i] != e |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
336 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
337 \ '\", text: \"' . text . '\", submatch ' . i . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
338 \ ': \"' . l[i] . '\", expected: \"' . e . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
339 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
340 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
341 unlet i |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
342 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
343 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
344 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
345 set regexpengine& |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
346 endfunc |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
347 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
348 " check that 'ambiwidth' does not change the meaning of \p |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
349 func Test_ambiwidth() |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
350 set regexpengine=1 ambiwidth=single |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
351 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
352 set regexpengine=1 ambiwidth=double |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
353 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
354 set regexpengine=2 ambiwidth=single |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
355 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
356 set regexpengine=2 ambiwidth=double |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
357 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
358 set regexpengine& ambiwidth& |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
359 endfunc |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
360 |
20772
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
361 func Run_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
362 call assert_equal('iIİ', substitute('iIİ', '\([iIİ]\)', '\1', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
363 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
364 call assert_equal('iIx', substitute('iIİ', '\c\([İ]\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
365 call assert_equal('xxİ', substitute('iIİ', '\(i\c\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
366 call assert_equal('iIx', substitute('iIİ', '\(İ\c\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
367 call assert_equal('iIx', substitute('iIİ', '\c\(\%u0130\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
368 call assert_equal('iIx', substitute('iIİ', '\c\([\u0130]\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
369 call assert_equal('iIx', substitute('iIİ', '\c\([\u012f-\u0131]\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
370 endfunc |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
371 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
372 func Test_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
373 set regexpengine=1 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
374 call Run_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
375 set regexpengine=2 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
376 call Run_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
377 set regexpengine& |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
378 endfunc |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
379 |
21489
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
380 " Tests for regexp with multi-byte encoding and various magic settings |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
381 func Run_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
382 let text =<< trim END |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
383 1 a aa abb abbccc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
384 2 d dd dee deefff |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
385 3 g gg ghh ghhiii |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
386 4 j jj jkk jkklll |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
387 5 m mm mnn mnnooo |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
388 6 x ^aa$ x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
389 7 (a)(b) abbaa |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
390 8 axx [ab]xx |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
391 9 หม่x อมx |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
392 a อมx หม่x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
393 b ちカヨは |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
394 c x ¬€x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
395 d 天使x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
396 e y |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
397 f z |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
398 g a啷bb |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
399 j 0123❤x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
400 k combinations |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
401 l äö üᾱ̆́ |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
402 END |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
403 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
404 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
405 call setline(1, text) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
406 exe 'normal /a*b\{2}c\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
407 call assert_equal('1 a aa abb abbcc', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
408 exe 'normal /\Md\*e\{2}f\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
409 call assert_equal('2 d dd dee deeff', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
410 set nomagic |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
411 exe 'normal /g\*h\{2}i\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
412 call assert_equal('3 g gg ghh ghhii', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
413 exe 'normal /\mj*k\{2}l\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
414 call assert_equal('4 j jj jkk jkkll', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
415 exe 'normal /\vm*n{2}o+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
416 call assert_equal('5 m mm mnn mnnoo', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
417 exe 'normal /\V^aa$/' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
418 call assert_equal('6 x aa$ x', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
419 set magic |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
420 exe 'normal /\v(a)(b)\2\1\1/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
421 call assert_equal('7 (a)(b) abba', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
422 exe 'normal /\V[ab]\(\[xy]\)\1' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
423 call assert_equal('8 axx ab]xx', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
424 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
425 " search for multi-byte without composing char |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
426 exe 'normal /ม' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
427 call assert_equal('9 หม่x อx', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
428 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
429 " search for multi-byte with composing char |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
430 exe 'normal /ม่' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
431 call assert_equal('a อมx หx', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
432 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
433 " find word by change of word class |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
434 exe 'normal /ち\<カヨ\>は' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
435 call assert_equal('b カヨは', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
436 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
437 " Test \%u, [\u] and friends |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
438 " c |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
439 exe 'normal /\%u20ac' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
440 call assert_equal('c x ¬x', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
441 " d |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
442 exe 'normal /[\u4f7f\u5929]\+' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
443 call assert_equal('d 使x', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
444 " e |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
445 exe 'normal /\%U12345678' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
446 call assert_equal('e y', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
447 " f |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
448 exe 'normal /[\U1234abcd\u1234\uabcd]' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
449 call assert_equal('f z', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
450 " g |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
451 exe 'normal /\%d21879b' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
452 call assert_equal('g abb', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
453 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
454 " j Test backwards search from a multi-byte char |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
455 exe "normal /x\<CR>x?.\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
456 call assert_equal('j 012❤', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
457 " k |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
458 let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
459 @w |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
460 call assert_equal('k œ̄ṣ́m̥̄ᾱ̆́', getline(18)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
461 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
462 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
463 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
464 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
465 func Test_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
466 set regexpengine=1 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
467 call Run_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
468 set regexpengine=2 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
469 call Run_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
470 set regexpengine& |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
471 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
472 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
473 " Test for 7.3.192 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
474 " command ":s/ \?/ /g" splits multi-byte characters into bytes |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
475 func Test_split_multibyte_to_bytes() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
476 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
477 call setline(1, 'l äö üᾱ̆́') |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
478 s/ \?/ /g |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
479 call assert_equal(' l ä ö ü ᾱ̆́', getline(1)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
480 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
481 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
482 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
483 " Test for matchstr() with multibyte characters |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
484 func Test_matchstr_multibyte() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
485 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
486 call assert_equal('ב', matchstr("אבגד", ".", 0, 2)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
487 call assert_equal('בג', matchstr("אבגד", "..", 0, 2)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
488 call assert_equal('א', matchstr("אבגד", ".", 0, 0)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
489 call assert_equal('ג', matchstr("אבגד", ".", 4, -1)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
490 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
491 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
492 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
493 " Test for 7.4.636 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
494 " A search with end offset gets stuck at end of file. |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
495 func Test_search_with_end_offset() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
496 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
497 call setline(1, ['', 'dog(a', 'cat(']) |
22476
b3751f4d3b26
patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
21489
diff
changeset
|
498 exe "normal /(/e+\<CR>" |
b3751f4d3b26
patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
21489
diff
changeset
|
499 normal n"ayn |
21489
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
500 call assert_equal("a\ncat(", @a) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
501 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
502 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
503 |
23262
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
504 " Check that "^" matches even when the line starts with a combining char |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
505 func Test_match_start_of_line_combining() |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
506 new |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
507 call setline(1, ['', "\u05ae", '']) |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
508 exe "normal gg/^\<CR>" |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
509 call assert_equal(2, getcurpos()[1]) |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
510 bwipe! |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
511 endfunc |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
512 |
23471
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
513 " Check that [[:upper:]] matches for automatic engine |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
514 func Test_match_char_class_upper() |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
515 new |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
516 let _engine=®expengine |
23262
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
517 |
23471
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
518 " Test 1: [[:upper:]]\{2,\} |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
519 set regexpengine=0 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
520 call setline(1, ['05. ПЕСНЯ О ГЕРОЯХ муз. А. Давиденко, М. Коваля и Б. Шехтера ...', '05. PJESNJA O GJEROJAKH mus. A. Davidjenko, M. Kovalja i B. Shjekhtjera ...']) |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
521 call cursor(1,1) |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
522 let search_cmd='norm /\<[[:upper:]]\{2,\}\>' .. "\<CR>" |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
523 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
524 call assert_equal(4, searchcount().total, 'TEST 1') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
525 set regexpengine=1 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
526 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
527 call assert_equal(2, searchcount().total, 'TEST 1') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
528 set regexpengine=2 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
529 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
530 call assert_equal(4, searchcount().total, 'TEST 1') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
531 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
532 " Test 2: [[:upper:]].\+ |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
533 let search_cmd='norm /\<[[:upper:]].\+\>' .. "\<CR>" |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
534 set regexpengine=0 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
535 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
536 call assert_equal(2, searchcount().total, 'TEST 2') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
537 set regexpengine=1 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
538 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
539 call assert_equal(1, searchcount().total, 'TEST 2') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
540 set regexpengine=2 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
541 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
542 call assert_equal(2, searchcount().total, 'TEST 2') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
543 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
544 " Test 3: [[:lower:]]\+ |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
545 let search_cmd='norm /\<[[:lower:]]\+\>' .. "\<CR>" |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
546 set regexpengine=0 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
547 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
548 call assert_equal(4, searchcount().total, 'TEST 3 lower') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
549 set regexpengine=1 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
550 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
551 call assert_equal(2, searchcount().total, 'TEST 3 lower') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
552 set regexpengine=2 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
553 exe search_cmd |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
554 call assert_equal(4, searchcount().total, 'TEST 3 lower') |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
555 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
556 " clean up |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
557 let ®expengine=_engine |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
558 bwipe! |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
559 endfunc |
23262
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
560 |
25747
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
561 func Test_match_invalid_byte() |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
562 call writefile(0z630a.765d30aa0a.2e0a.790a.4030, 'Xinvalid') |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
563 new |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
564 source Xinvalid |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
565 bwipe! |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
566 call delete('Xinvalid') |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
567 endfunc |
1c999a6e9d92
patch 8.2.3409: reading beyond end of line with invalid utf-8 character
Bram Moolenaar <Bram@vim.org>
parents:
24351
diff
changeset
|
568 |
18906
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
569 " vim: shiftwidth=2 sts=2 expandtab |