Mercurial > vim
annotate src/testdir/test_regexp_utf8.vim @ 29258:df2509261185
Added tag v8.2.5147 for changeset 4795d56a245b8253bdba08cb81916e2870b9e394
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 21 Jun 2022 23:45:04 +0200 |
parents | 0815a43eebce |
children | e7158d889784 |
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 else |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
156 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
|
157 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
|
158 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
159 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
160 if has('win32') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
161 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
|
162 elseif has('amiga') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
163 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
|
164 elseif has('vms') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
165 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
|
166 else |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
167 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
|
168 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
169 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
170 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
|
171 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
|
172 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
|
173 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
174 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
|
175 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
|
176 call assert_equal(fnamechars1, fnamechars) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
177 endfunc |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
178 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
179 func Test_classes_re1() |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
180 set re=1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
181 call s:classes_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
182 set re=0 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
183 endfunc |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
184 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
185 func Test_classes_re2() |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
186 set re=2 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
187 call s:classes_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
188 set re=0 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
189 endfunc |
11480
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
190 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
191 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
|
192 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
|
193 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
|
194 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
|
195 endfor |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
196 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
|
197 endfunc |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
198 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
199 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
|
200 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
|
201 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
|
202 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
|
203 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
|
204 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
|
205 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
|
206 endfunc |
17444
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
207 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
208 func Test_optmatch_toolong() |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
209 set re=1 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
210 " 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
|
211 let pat = '\\%[' .. repeat('x', 9000) .. ']' |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
212 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
|
213 set re=0 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
214 endfunc |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
215 |
18906
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
216 " 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
|
217 func Test_multibyte_chars() |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
218 " 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
|
219 " 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
|
220 " regexp pattern |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
221 " 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
|
222 " expected match (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
223 " expected submatch 1 (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
224 " expected submatch 2 (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
225 " etc. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
226 " 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
|
227 let tl = [] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
228 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
229 " 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
|
230 " 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
|
231 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
|
232 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
|
233 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
|
234 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
|
235 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
|
236 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
237 " 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
|
238 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
|
239 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
|
240 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
241 " 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
|
242 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
|
243 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
|
244 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
245 " Test composing character matching |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
246 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
|
247 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
|
248 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
|
249 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
|
250 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
|
251 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
|
252 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
|
253 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
|
254 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
|
255 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
|
256 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
|
257 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
|
258 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
|
259 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
|
260 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
|
261 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
|
262 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
|
263 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
|
264 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
|
265 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
|
266 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
267 " Test \Z |
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, 'ú\Z', 'x']) |
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, 'יהוה\Z', 'יהוה', 'יהוה']) |
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, 'יְהוָה\Z', 'יהוה', 'יהוה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
271 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
|
272 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
|
273 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
|
274 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
|
275 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
|
276 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
|
277 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
|
278 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
|
279 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
|
280 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
|
281 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
|
282 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
|
283 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
|
284 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
285 " 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
|
286 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
|
287 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
288 " Run the tests |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
289 for t in tl |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
290 let re = t[0] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
291 let pat = t[1] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
292 let text = t[2] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
293 let matchidx = 3 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
294 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
|
295 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
|
296 continue |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
297 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
298 let ®expengine = engine |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
299 try |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
300 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
|
301 catch |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
302 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
|
303 \ '\", text: \"' . text . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
304 \ '\", 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
|
305 endtry |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
306 " check the match itself |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
307 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
|
308 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
|
309 \ '\", text: \"' . text . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
310 \ '\", 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
|
311 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
|
312 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
|
313 \ '\", 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
|
314 \ '\", expected no match') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
315 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
|
316 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
|
317 \ '\", 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
|
318 \ '\", expected: \"' . t[matchidx] . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
319 else |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
320 " Test passed |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
321 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
322 if len(l) > 0 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
323 " 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
|
324 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
|
325 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
|
326 let e = '' |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
327 else |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
328 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
|
329 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
330 if l[i] != e |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
331 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
|
332 \ '\", text: \"' . text . '\", submatch ' . i . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
333 \ ': \"' . l[i] . '\", expected: \"' . e . '\"') |
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 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
336 unlet i |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
337 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
338 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
339 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
340 set regexpengine& |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
341 endfunc |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
342 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
343 " 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
|
344 func Test_ambiwidth() |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
345 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
|
346 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
|
347 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
|
348 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
|
349 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
|
350 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
|
351 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
|
352 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
|
353 set regexpengine& ambiwidth& |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
354 endfunc |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
355 |
20772
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
356 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
|
357 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
|
358 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
359 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
|
360 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
|
361 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
|
362 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
|
363 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
|
364 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
|
365 endfunc |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
366 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
367 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
|
368 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
|
369 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
|
370 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
|
371 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
|
372 set regexpengine& |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
373 endfunc |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
374 |
21489
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
375 " 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
|
376 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
|
377 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
|
378 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
|
379 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
|
380 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
|
381 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
|
382 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
|
383 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
|
384 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
|
385 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
|
386 9 หม่x อมx |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
387 a อมx หม่x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
388 b ちカヨは |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
389 c x ¬€x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
390 d 天使x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
391 e y |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
392 f z |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
393 g a啷bb |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
394 j 0123❤x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
395 k combinations |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
396 l äö üᾱ̆́ |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
397 END |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
398 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
399 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
400 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
|
401 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
|
402 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
|
403 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
|
404 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
|
405 set nomagic |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
406 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
|
407 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
|
408 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
|
409 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
|
410 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
|
411 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
|
412 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
|
413 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
|
414 set magic |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
415 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
|
416 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
|
417 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
|
418 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
|
419 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
420 " 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
|
421 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
|
422 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
|
423 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
424 " 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
|
425 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
|
426 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
|
427 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
428 " 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
|
429 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
|
430 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
|
431 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
432 " 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
|
433 " c |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
434 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
|
435 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
|
436 " d |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
437 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
|
438 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
|
439 " e |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
440 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
|
441 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
|
442 " f |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
443 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
|
444 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
|
445 " g |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
446 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
|
447 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
|
448 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
449 " 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
|
450 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
|
451 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
|
452 " k |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
453 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
|
454 @w |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
455 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
|
456 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
457 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
458 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
459 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
460 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
|
461 set regexpengine=1 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
462 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
|
463 set regexpengine=2 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
464 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
|
465 set regexpengine& |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
466 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
467 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
468 " 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
|
469 " 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
|
470 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
|
471 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
472 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
|
473 s/ \?/ /g |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
474 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
|
475 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
476 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
477 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
478 " 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
|
479 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
|
480 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
481 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
|
482 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
|
483 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
|
484 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
|
485 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
486 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
487 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
488 " 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
|
489 " 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
|
490 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
|
491 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
492 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
|
493 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
|
494 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
|
495 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
|
496 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
497 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
498 |
23262
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
499 " 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
|
500 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
|
501 new |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
502 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
|
503 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
|
504 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
|
505 bwipe! |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
506 endfunc |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
507 |
23471
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
508 " 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
|
509 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
|
510 new |
23262
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
511 |
23471
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
512 " 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
|
513 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
|
514 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
|
515 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
|
516 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
|
517 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
|
518 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
|
519 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
|
520 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
|
521 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
|
522 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
|
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 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
526 " 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
|
527 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
|
528 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
|
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(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
|
531 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
|
532 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
|
533 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
|
534 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
|
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 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
538 " 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
|
539 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
|
540 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
|
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(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
|
543 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
|
544 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
|
545 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
|
546 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
|
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 |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
550 " clean up |
27829
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
551 set regexpengine=0 |
23471
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
552 bwipe! |
a7cdfc8e4b6e
patch 8.2.2278: falling back to old regexp engine can some patterns
Bram Moolenaar <Bram@vim.org>
parents:
23262
diff
changeset
|
553 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
|
554 |
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
|
555 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
|
556 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
|
557 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
|
558 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
|
559 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
|
560 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
|
561 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
|
562 |
27829
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
563 func Test_match_too_complicated() |
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
564 set regexpengine=1 |
27835
0815a43eebce
patch 8.2.4443: regexp pattern test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents:
27829
diff
changeset
|
565 exe "noswapfile vsplit \xeb\xdb\x99" |
27829
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
566 silent! buf \&\zs*\zs*0 |
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
567 bwipe! |
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
568 set regexpengine=0 |
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
569 endfunc |
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
570 |
0138ce89703b
patch 8.2.4440: crash with specific regexp pattern and string
Bram Moolenaar <Bram@vim.org>
parents:
27490
diff
changeset
|
571 |
18906
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
572 " vim: shiftwidth=2 sts=2 expandtab |