Mercurial > vim
annotate src/testdir/test_regexp_utf8.vim @ 23440:b0587f7ec422 v8.2.2263
patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Commit: https://github.com/vim/vim/commit/69f7050cebb0f069d6e39571961b9bbe8531c69a
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jan 1 16:10:46 2021 +0100
patch 8.2.2263: Vim9: compilation error with try-catch in skipped block
Problem: Vim9: compilation error with try-catch in skipped block.
Solution: Do not bail out when generate_instr() returns NULL. (closes https://github.com/vim/vim/issues/7584)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 01 Jan 2021 16:15:04 +0100 |
parents | dca9e6b931d3 |
children | a7cdfc8e4b6e |
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() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
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źżžƶẑẕ" |
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 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 call assert_match('^[[=' . c . '=]]*$', group1) |
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 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 call assert_equal(-1, match(group2, '[[=' . c . '=]]')) |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 endif |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 endfunc |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 func Test_equivalence_re1() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 set re=1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 call s:equivalence_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
25 set re=0 |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 endfunc |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 func Test_equivalence_re2() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 set re=2 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 call s:equivalence_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
31 set re=0 |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 endfunc |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
33 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
34 func s:classes_test() |
21407
6d8696fd4945
patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Bram Moolenaar <Bram@vim.org>
parents:
20772
diff
changeset
|
35 if has('win32') |
6d8696fd4945
patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Bram Moolenaar <Bram@vim.org>
parents:
20772
diff
changeset
|
36 set iskeyword=@,48-57,_,192-255 |
6d8696fd4945
patch 8.2.1254: MS-Windows: regexp test may fail if 'iskeyword' set wrongly
Bram Moolenaar <Bram@vim.org>
parents:
20772
diff
changeset
|
37 endif |
8999
f414db42d167
commit https://github.com/vim/vim/commit/490465bda6ab66f78041709cc02f48a25486a3e5
Christian Brabandt <cb@256bit.org>
parents:
8995
diff
changeset
|
38 set isprint=@,161-255 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
39 call assert_equal('Motörhead', matchstr('Motörhead', '[[:print:]]\+')) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
40 |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
41 let alnumchars = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
42 let alphachars = '' |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
43 let backspacechar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
44 let blankchars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
45 let cntrlchars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
46 let digitchars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
47 let escapechar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
48 let graphchars = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
49 let lowerchars = '' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
50 let printchars = '' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
51 let punctchars = '' |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
52 let returnchar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
53 let spacechars = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
54 let tabchar = '' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
55 let upperchars = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
56 let xdigitchars = '' |
15709
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
57 let identchars = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
58 let identchars1 = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
59 let kwordchars = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
60 let kwordchars1 = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
61 let fnamechars = '' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
62 let fnamechars1 = '' |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
63 let i = 1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
64 while i <= 255 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
65 let c = nr2char(i) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
66 if c =~ '[[:alpha:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
67 let alphachars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
68 endif |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
69 if c =~ '[[:alnum:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
70 let alnumchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
71 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
72 if c =~ '[[:backspace:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
73 let backspacechar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
74 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
75 if c =~ '[[:blank:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
76 let blankchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
77 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
78 if c =~ '[[:cntrl:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
79 let cntrlchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
80 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
81 if c =~ '[[:digit:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
82 let digitchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
83 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
84 if c =~ '[[:escape:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
85 let escapechar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
86 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
87 if c =~ '[[:graph:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
88 let graphchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
89 endif |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
90 if c =~ '[[:lower:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
91 let lowerchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
92 endif |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
93 if c =~ '[[:print:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
94 let printchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
95 endif |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
96 if c =~ '[[:punct:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
97 let punctchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
98 endif |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
99 if c =~ '[[:return:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
100 let returnchar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
101 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
102 if c =~ '[[:space:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
103 let spacechars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
104 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
105 if c =~ '[[:tab:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
106 let tabchar .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
107 endif |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
108 if c =~ '[[:upper:]]' |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
109 let upperchars .= c |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
110 endif |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
111 if c =~ '[[:xdigit:]]' |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
112 let xdigitchars .= c |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
113 endif |
15709
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
114 if c =~ '[[:ident:]]' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
115 let identchars .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
116 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
117 if c =~ '\i' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
118 let identchars1 .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
119 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
120 if c =~ '[[:keyword:]]' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
121 let kwordchars .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
122 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
123 if c =~ '\k' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
124 let kwordchars1 .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
125 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
126 if c =~ '[[:fname:]]' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
127 let fnamechars .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
128 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
129 if c =~ '\f' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
130 let fnamechars1 .= c |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
131 endif |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
132 let i += 1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
133 endwhile |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
134 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
135 call assert_equal('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', alphachars) |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
136 call assert_equal('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', alnumchars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
137 call assert_equal("\b", backspacechar) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
138 call assert_equal("\t ", blankchars) |
11287
e800e8149a5b
patch 8.0.0529: line in test commented out
Christian Brabandt <cb@256bit.org>
parents:
11267
diff
changeset
|
139 call assert_equal("\x01\x02\x03\x04\x05\x06\x07\b\t\n\x0b\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\e\x1c\x1d\x1e\x1f\x7f", cntrlchars) |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
140 call assert_equal("0123456789", digitchars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
141 call assert_equal("\<Esc>", escapechar) |
11287
e800e8149a5b
patch 8.0.0529: line in test commented out
Christian Brabandt <cb@256bit.org>
parents:
11267
diff
changeset
|
142 call assert_equal('!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~', graphchars) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
143 call assert_equal('abcdefghijklmnopqrstuvwxyzµßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ', lowerchars) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
144 call assert_equal(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ', printchars) |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
145 call assert_equal('!"#$%&''()*+,-./:;<=>?@[\]^_`{|}~', punctchars) |
11267
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
146 call assert_equal('ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ', upperchars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
147 call assert_equal("\r", returnchar) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
148 call assert_equal("\t\n\x0b\f\r ", spacechars) |
588de97b40e7
patch 8.0.0519: character classes are not well tested
Christian Brabandt <cb@256bit.org>
parents:
9898
diff
changeset
|
149 call assert_equal("\t", tabchar) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
150 call assert_equal('0123456789ABCDEFabcdef', xdigitchars) |
15709
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
151 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
152 if has('win32') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
153 let identchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz ¡¢£¤¥¦§µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
154 let kwordchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
155 elseif has('ebcdic') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
156 let identchars_ok = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz¬®µº¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
157 let kwordchars_ok = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz¬®µº¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
158 else |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
159 let identchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
160 let kwordchars_ok = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzµÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
161 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
162 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
163 if has('win32') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
164 let fnamechars_ok = '!#$%+,-./0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_abcdefghijklmnopqrstuvwxyz{}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
165 elseif has('amiga') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
166 let fnamechars_ok = '$+,-./0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
167 elseif has('vms') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
168 let fnamechars_ok = '#$%+,-./0123456789:;<>ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
169 elseif has('ebcdic') |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
170 let fnamechars_ok = '#$%+,-./=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
171 else |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
172 let fnamechars_ok = '#$%+,-./0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
173 endif |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
174 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
175 call assert_equal(identchars_ok, identchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
176 call assert_equal(kwordchars_ok, kwordchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
177 call assert_equal(fnamechars_ok, fnamechars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
178 |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
179 call assert_equal(identchars1, identchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
180 call assert_equal(kwordchars1, kwordchars) |
2e2f07561f4b
patch 8.1.0862: no verbose version of character classes
Bram Moolenaar <Bram@vim.org>
parents:
15607
diff
changeset
|
181 call assert_equal(fnamechars1, fnamechars) |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
182 endfunc |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
183 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
184 func Test_classes_re1() |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
185 set re=1 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
186 call s:classes_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
187 set re=0 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
188 endfunc |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
189 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
190 func Test_classes_re2() |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
191 set re=2 |
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
192 call s:classes_test() |
9896
7b39615c0db1
commit https://github.com/vim/vim/commit/6bff02eb530aa29aafa2cb5627399837be7a5dd5
Christian Brabandt <cb@256bit.org>
parents:
9618
diff
changeset
|
193 set re=0 |
8995
3cf6704d6efc
commit https://github.com/vim/vim/commit/af98a49dd0ef1661b4998f118151fddbf6e4df75
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
194 endfunc |
11480
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
195 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
196 func Test_reversed_range() |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
197 for re in range(0, 2) |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
198 exe 'set re=' . re |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
199 call assert_fails('call match("abc def", "[c-a]")', 'E944:') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
200 endfor |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
201 set re=0 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
202 endfunc |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
203 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
204 func Test_large_class() |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
205 set re=1 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
206 call assert_fails('call match("abc def", "[\u3000-\u4000]")', 'E945:') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
207 set re=2 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
208 call assert_equal(0, 'abc def' =~# '[\u3000-\u4000]') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
209 call assert_equal(1, "\u3042" =~# '[\u3000-\u4000]') |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
210 set re=0 |
99ce30ac4226
patch 8.0.0623: error for invalid regexp is not very informative
Christian Brabandt <cb@256bit.org>
parents:
11287
diff
changeset
|
211 endfunc |
17444
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
212 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
213 func Test_optmatch_toolong() |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
214 set re=1 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
215 " Can only handle about 8000 characters. |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
216 let pat = '\\%[' .. repeat('x', 9000) .. ']' |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
217 call assert_fails('call match("abc def", "' .. pat .. '")', 'E339:') |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
218 set re=0 |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
219 endfunc |
f4ce361bb1e5
patch 8.1.1720: crash with very long %[] pattern
Bram Moolenaar <Bram@vim.org>
parents:
15709
diff
changeset
|
220 |
18906
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
221 " Test for regexp patterns with multi-byte support, using utf-8. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
222 func Test_multibyte_chars() |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
223 " tl is a List of Lists with: |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
224 " 2: test auto/old/new 0: test auto/old 1: test auto/new |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
225 " regexp pattern |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
226 " text to test the pattern on |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
227 " expected match (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
228 " expected submatch 1 (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
229 " expected submatch 2 (optional) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
230 " etc. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
231 " When there is no match use only the first two items. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
232 let tl = [] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
233 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
234 " Multi-byte character tests. These will fail unless vim is compiled |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
235 " with Multibyte (FEAT_MBYTE) or BIG/HUGE features. |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
236 call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
237 call add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ']) " equivalence classes |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
238 call add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oijasoifjos']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
239 call add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
240 call add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
241 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
242 " this is not a normal "i" but 0xec |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
243 call add(tl, [2, '\p\+', 'ìa', 'ìa']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
244 call add(tl, [2, '\p*', 'aあ', 'aあ']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
245 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
246 " Test recognition of some character classes |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
247 call add(tl, [2, '\i\+', '&*¨xx ', 'xx']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
248 call add(tl, [2, '\f\+', '&*fname ', 'fname']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
249 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
250 " Test composing character matching |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
251 call add(tl, [2, '.ม', 'xม่x yมy', 'yม']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
252 call add(tl, [2, '.ม่', 'xม่x yมy', 'xม่']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
253 call add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
254 call add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
255 call add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
256 call add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
257 call add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
258 call add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
259 call add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
260 call add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
261 call add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
262 call add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
263 call add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
264 call add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
265 call add(tl, [2, "a", "ca\u0300t"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
266 call add(tl, [2, "ca", "ca\u0300t"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
267 call add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
268 call add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
269 call add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
270 call add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
271 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
272 " Test \Z |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
273 call add(tl, [2, 'ú\Z', 'x']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
274 call add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
275 call add(tl, [2, 'יְהוָה\Z', 'יהוה', 'יהוה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
276 call add(tl, [2, 'יהוה\Z', 'יְהוָה', 'יְהוָה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
277 call add(tl, [2, 'יְהוָה\Z', 'יְהוָה', 'יְהוָה']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
278 call add(tl, [2, 'יְ\Z', 'וְיַ', 'יַ']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
279 call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
280 call add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
281 call add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
282 call add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
283 call add(tl, [2, "\u05b9\\Z", "xyz"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
284 call add(tl, [2, "\\Z\u05b9", "xyz"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
285 call add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
286 call add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
287 call add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
288 call add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
289 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
290 " Combining different tests and features |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
291 call add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd']) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
292 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
293 " Run the tests |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
294 for t in tl |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
295 let re = t[0] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
296 let pat = t[1] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
297 let text = t[2] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
298 let matchidx = 3 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
299 for engine in [0, 1, 2] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
300 if engine == 2 && re == 0 || engine == 1 && re == 1 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
301 continue |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
302 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
303 let ®expengine = engine |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
304 try |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
305 let l = matchlist(text, pat) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
306 catch |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
307 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
308 \ '\", text: \"' . text . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
309 \ '\", caused an exception: \"' . v:exception . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
310 endtry |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
311 " check the match itself |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
312 if len(l) == 0 && len(t) > matchidx |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
313 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
314 \ '\", text: \"' . text . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
315 \ '\", did not match, expected: \"' . t[matchidx] . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
316 elseif len(l) > 0 && len(t) == matchidx |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
317 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
318 \ '\", text: \"' . text . '\", match: \"' . l[0] . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
319 \ '\", expected no match') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
320 elseif len(t) > matchidx && l[0] != t[matchidx] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
321 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
322 \ '\", text: \"' . text . '\", match: \"' . l[0] . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
323 \ '\", expected: \"' . t[matchidx] . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
324 else |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
325 " Test passed |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
326 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
327 if len(l) > 0 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
328 " check all the nine submatches |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
329 for i in range(1, 9) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
330 if len(t) <= matchidx + i |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
331 let e = '' |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
332 else |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
333 let e = t[matchidx + i] |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
334 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
335 if l[i] != e |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
336 call assert_report('Error ' . engine . ': pat: \"' . pat . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
337 \ '\", text: \"' . text . '\", submatch ' . i . |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
338 \ ': \"' . l[i] . '\", expected: \"' . e . '\"') |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
339 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
340 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
341 unlet i |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
342 endif |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
343 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
344 endfor |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
345 set regexpengine& |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
346 endfunc |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
347 |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
348 " check that 'ambiwidth' does not change the meaning of \p |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
349 func Test_ambiwidth() |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
350 set regexpengine=1 ambiwidth=single |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
351 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
352 set regexpengine=1 ambiwidth=double |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
353 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
354 set regexpengine=2 ambiwidth=single |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
355 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
356 set regexpengine=2 ambiwidth=double |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
357 call assert_equal(0, match("\u00EC", '\p')) |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
358 set regexpengine& ambiwidth& |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
359 endfunc |
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
360 |
20772
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
361 func Run_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
362 call assert_equal('iIİ', substitute('iIİ', '\([iIİ]\)', '\1', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
363 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
364 call assert_equal('iIx', substitute('iIİ', '\c\([İ]\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
365 call assert_equal('xxİ', substitute('iIİ', '\(i\c\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
366 call assert_equal('iIx', substitute('iIİ', '\(İ\c\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
367 call assert_equal('iIx', substitute('iIİ', '\c\(\%u0130\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
368 call assert_equal('iIx', substitute('iIİ', '\c\([\u0130]\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
369 call assert_equal('iIx', substitute('iIİ', '\c\([\u012f-\u0131]\)', 'x', 'g')) |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
370 endfunc |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
371 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
372 func Test_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
373 set regexpengine=1 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
374 call Run_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
375 set regexpengine=2 |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
376 call Run_regexp_ignore_case() |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
377 set regexpengine& |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
378 endfunc |
097f5b5c907b
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Bram Moolenaar <Bram@vim.org>
parents:
18906
diff
changeset
|
379 |
21489
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
380 " Tests for regexp with multi-byte encoding and various magic settings |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
381 func Run_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
382 let text =<< trim END |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
383 1 a aa abb abbccc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
384 2 d dd dee deefff |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
385 3 g gg ghh ghhiii |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
386 4 j jj jkk jkklll |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
387 5 m mm mnn mnnooo |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
388 6 x ^aa$ x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
389 7 (a)(b) abbaa |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
390 8 axx [ab]xx |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
391 9 หม่x อมx |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
392 a อมx หม่x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
393 b ちカヨは |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
394 c x ¬€x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
395 d 天使x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
396 e y |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
397 f z |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
398 g a啷bb |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
399 j 0123❤x |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
400 k combinations |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
401 l äö üᾱ̆́ |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
402 END |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
403 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
404 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
405 call setline(1, text) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
406 exe 'normal /a*b\{2}c\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
407 call assert_equal('1 a aa abb abbcc', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
408 exe 'normal /\Md\*e\{2}f\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
409 call assert_equal('2 d dd dee deeff', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
410 set nomagic |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
411 exe 'normal /g\*h\{2}i\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
412 call assert_equal('3 g gg ghh ghhii', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
413 exe 'normal /\mj*k\{2}l\+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
414 call assert_equal('4 j jj jkk jkkll', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
415 exe 'normal /\vm*n{2}o+/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
416 call assert_equal('5 m mm mnn mnnoo', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
417 exe 'normal /\V^aa$/' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
418 call assert_equal('6 x aa$ x', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
419 set magic |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
420 exe 'normal /\v(a)(b)\2\1\1/e' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
421 call assert_equal('7 (a)(b) abba', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
422 exe 'normal /\V[ab]\(\[xy]\)\1' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
423 call assert_equal('8 axx ab]xx', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
424 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
425 " search for multi-byte without composing char |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
426 exe 'normal /ม' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
427 call assert_equal('9 หม่x อx', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
428 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
429 " search for multi-byte with composing char |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
430 exe 'normal /ม่' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
431 call assert_equal('a อมx หx', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
432 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
433 " find word by change of word class |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
434 exe 'normal /ち\<カヨ\>は' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
435 call assert_equal('b カヨは', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
436 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
437 " Test \%u, [\u] and friends |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
438 " c |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
439 exe 'normal /\%u20ac' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
440 call assert_equal('c x ¬x', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
441 " d |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
442 exe 'normal /[\u4f7f\u5929]\+' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
443 call assert_equal('d 使x', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
444 " e |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
445 exe 'normal /\%U12345678' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
446 call assert_equal('e y', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
447 " f |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
448 exe 'normal /[\U1234abcd\u1234\uabcd]' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
449 call assert_equal('f z', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
450 " g |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
451 exe 'normal /\%d21879b' .. "\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
452 call assert_equal('g abb', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
453 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
454 " j Test backwards search from a multi-byte char |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
455 exe "normal /x\<CR>x?.\<CR>x" |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
456 call assert_equal('j 012❤', getline('.')) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
457 " k |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
458 let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
459 @w |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
460 call assert_equal('k œ̄ṣ́m̥̄ᾱ̆́', getline(18)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
461 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
462 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
463 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
464 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
465 func Test_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
466 set regexpengine=1 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
467 call Run_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
468 set regexpengine=2 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
469 call Run_regexp_multibyte_magic() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
470 set regexpengine& |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
471 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
472 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
473 " Test for 7.3.192 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
474 " command ":s/ \?/ /g" splits multi-byte characters into bytes |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
475 func Test_split_multibyte_to_bytes() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
476 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
477 call setline(1, 'l äö üᾱ̆́') |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
478 s/ \?/ /g |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
479 call assert_equal(' l ä ö ü ᾱ̆́', getline(1)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
480 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
481 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
482 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
483 " Test for matchstr() with multibyte characters |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
484 func Test_matchstr_multibyte() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
485 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
486 call assert_equal('ב', matchstr("אבגד", ".", 0, 2)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
487 call assert_equal('בג', matchstr("אבגד", "..", 0, 2)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
488 call assert_equal('א', matchstr("אבגד", ".", 0, 0)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
489 call assert_equal('ג', matchstr("אבגד", ".", 4, -1)) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
490 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
491 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
492 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
493 " Test for 7.4.636 |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
494 " A search with end offset gets stuck at end of file. |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
495 func Test_search_with_end_offset() |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
496 new |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
497 call setline(1, ['', 'dog(a', 'cat(']) |
22476
b3751f4d3b26
patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
21489
diff
changeset
|
498 exe "normal /(/e+\<CR>" |
b3751f4d3b26
patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
21489
diff
changeset
|
499 normal n"ayn |
21489
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
500 call assert_equal("a\ncat(", @a) |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
501 close! |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
502 endfunc |
c9a1b3b66fb7
patch 8.2.1295: tests 44 and 99 are old style
Bram Moolenaar <Bram@vim.org>
parents:
21407
diff
changeset
|
503 |
23262
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
504 " Check that "^" matches even when the line starts with a combining char |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
505 func Test_match_start_of_line_combining() |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
506 new |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
507 call setline(1, ['', "\u05ae", '']) |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
508 exe "normal gg/^\<CR>" |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
509 call assert_equal(2, getcurpos()[1]) |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
510 bwipe! |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
511 endfunc |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
512 |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
513 |
dca9e6b931d3
patch 8.2.2177: pattern "^" does not match if first character is combining
Bram Moolenaar <Bram@vim.org>
parents:
22476
diff
changeset
|
514 |
18906
bb87c5c1e29b
patch 8.2.0014: test69 and test95 are old style
Bram Moolenaar <Bram@vim.org>
parents:
17444
diff
changeset
|
515 " vim: shiftwidth=2 sts=2 expandtab |