Mercurial > vim
annotate src/testdir/test_regexp_latin.vim @ 21303:7c50dfe302f8 v8.2.1202
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Commit: https://github.com/vim/vim/commit/08f7a41b0a280e5901eb4ee4bbfe682113863492
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jul 13 20:41:08 2020 +0200
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Problem: Vim9: crash when calling a closure from a builtin function.
Solution: Use the current execution context. (closes https://github.com/vim/vim/issues/6441)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 13 Jul 2020 20:45:04 +0200 |
parents | 6a4806e326dd |
children | 08940efa6b4e |
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 latin1 encoding |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 set encoding=latin1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 scriptencoding latin1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 |
19249
2a017e9dc6da
patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents:
18898
diff
changeset
|
5 source check.vim |
2a017e9dc6da
patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents:
18898
diff
changeset
|
6 |
8825
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 func s:equivalence_test() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 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ñ 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
|
9 let groups = split(str) |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 for group1 in groups |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 for c in split(group1, '\zs') |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 " 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
|
13 " character in group |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 call assert_match('^[[=' . c . '=]]*$', group1) |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 for group2 in groups |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 if group2 != group1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 " 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
|
18 " a character in any other group |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 call assert_equal(-1, match(group2, '[[=' . c . '=]]')) |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 endif |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 endfor |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 endfunc |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 func Test_equivalence_re1() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 set re=1 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 call s:equivalence_test() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 endfunc |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 func Test_equivalence_re2() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 set re=2 |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 call s:equivalence_test() |
318eaa6fa973
commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 endfunc |
9890
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
35 |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
36 func Test_recursive_substitute() |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
37 new |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
38 s/^/\=execute("s#^##gn") |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
39 " check we are now not in the sandbox |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
40 call setwinvar(1, 'myvar', 1) |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
41 bwipe! |
064effd222a3
commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents:
8825
diff
changeset
|
42 endfunc |
10168
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
43 |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
44 func Test_nested_backrefs() |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
45 " Check example in change.txt. |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
46 new |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
47 for re in range(0, 2) |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
48 exe 'set re=' . re |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
49 call setline(1, 'aa ab x') |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
50 1s/\(\(a[a-d] \)*\)\(x\)/-\1- -\2- -\3-/ |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
51 call assert_equal('-aa ab - -ab - -x-', getline(1)) |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
52 |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
53 call assert_equal('-aa ab - -ab - -x-', substitute('aa ab x', '\(\(a[a-d] \)*\)\(x\)', '-\1- -\2- -\3-', '')) |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
54 endfor |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
55 bwipe! |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
56 set re=0 |
3c37899baa8d
commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents:
9909
diff
changeset
|
57 endfunc |
10170
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
58 |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
59 func Test_eow_with_optional() |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
60 let expected = ['abc def', 'abc', 'def', '', '', '', '', '', '', ''] |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
61 for re in range(0, 2) |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
62 exe 'set re=' . re |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
63 let actual = matchlist('abc def', '\(abc\>\)\?\s*\(def\)') |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
64 call assert_equal(expected, actual) |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
65 endfor |
4acacf4081ce
commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents:
10168
diff
changeset
|
66 endfunc |
11525
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
67 |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
68 func Test_backref() |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
69 new |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
70 call setline(1, ['one', 'two', 'three', 'four', 'five']) |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
71 call assert_equal(3, search('\%#=1\(e\)\1')) |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
72 call assert_equal(3, search('\%#=2\(e\)\1')) |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
73 call assert_fails('call search("\\%#=1\\(e\\1\\)")', 'E65:') |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
74 call assert_fails('call search("\\%#=2\\(e\\1\\)")', 'E65:') |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
75 bwipe! |
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
10170
diff
changeset
|
76 endfunc |
15486
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
77 |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
78 func Test_multi_failure() |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
79 set re=1 |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
80 call assert_fails('/a**', 'E61:') |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
81 call assert_fails('/a*\+', 'E62:') |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
82 call assert_fails('/a\{a}', 'E554:') |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
83 set re=2 |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
84 call assert_fails('/a**', 'E871:') |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
85 call assert_fails('/a*\+', 'E871:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
19969
diff
changeset
|
86 call assert_fails('/a\{a}', 'E554:') |
15486
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
87 set re=0 |
b143545e3354
patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents:
11525
diff
changeset
|
88 endfunc |
15796
481452f6687c
patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents:
15486
diff
changeset
|
89 |
481452f6687c
patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents:
15486
diff
changeset
|
90 func Test_recursive_addstate() |
481452f6687c
patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents:
15486
diff
changeset
|
91 " This will call addstate() recursively until it runs into the limit. |
481452f6687c
patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents:
15486
diff
changeset
|
92 let lnum = search('\v((){328}){389}') |
481452f6687c
patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents:
15486
diff
changeset
|
93 call assert_equal(0, lnum) |
481452f6687c
patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents:
15486
diff
changeset
|
94 endfunc |
15806
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
95 |
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
96 func Test_out_of_memory() |
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
97 new |
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
98 s/^/,n |
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
99 " This will be slow... |
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
100 call assert_fails('call search("\\v((n||<)+);")', 'E363:') |
6a4e9d9f1d66
patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15796
diff
changeset
|
101 endfunc |
15854
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
102 |
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
103 func Test_get_equi_class() |
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
104 new |
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
105 " Incomplete equivalence class caused invalid memory access |
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
106 s/^/[[= |
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
107 call assert_equal(1, search(getline(1))) |
15860
9cd9bf2897de
patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15856
diff
changeset
|
108 s/.*/[[. |
9cd9bf2897de
patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15856
diff
changeset
|
109 call assert_equal(1, search(getline(1))) |
15854
4ac1c185b0b8
patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents:
15806
diff
changeset
|
110 endfunc |
15856
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
111 |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
112 func Test_rex_init() |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
113 set noincsearch |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
114 set re=1 |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
115 new |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
116 setlocal iskeyword=a-z |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
117 call setline(1, ['abc', 'ABC']) |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
118 call assert_equal(1, search('[[:keyword:]]')) |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
119 new |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
120 setlocal iskeyword=A-Z |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
121 call setline(1, ['abc', 'ABC']) |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
122 call assert_equal(2, search('[[:keyword:]]')) |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
123 bwipe! |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
124 bwipe! |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
125 set re=0 |
e44b7caaf373
patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents:
15854
diff
changeset
|
126 endfunc |
15876
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
127 |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
128 func Test_range_with_newline() |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
129 new |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
130 call setline(1, "a") |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
131 call assert_equal(0, search("[ -*\\n- ]")) |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
132 call assert_equal(0, search("[ -*\\t-\\n]")) |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
133 bwipe! |
0c49755f460e
patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents:
15860
diff
changeset
|
134 endfunc |
15904
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
135 |
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
136 func Test_pattern_compile_speed() |
19249
2a017e9dc6da
patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents:
18898
diff
changeset
|
137 CheckOption spellcapcheck |
2a017e9dc6da
patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents:
18898
diff
changeset
|
138 CheckFunction reltimefloat |
2a017e9dc6da
patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents:
18898
diff
changeset
|
139 |
15904
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
140 let start = reltime() |
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
141 " this used to be very slow, not it should be about a second |
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
142 set spc=\\v(((((Nxxxxxxx&&xxxx){179})+)+)+){179} |
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
143 call assert_inrange(0.01, 10.0, reltimefloat(reltime(start))) |
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
144 set spc= |
fec4416adb80
patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents:
15876
diff
changeset
|
145 endfunc |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
146 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
147 " Tests for regexp patterns without multi-byte support. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
148 func Test_regexp_single_line_pat() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
149 " tl is a List of Lists with: |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
150 " regexp engines to test |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
151 " 0 - test with 'regexpengine' values 0 and 1 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
152 " 1 - test with 'regexpengine' values 0 and 2 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
153 " 2 - test with 'regexpengine' values 0, 1 and 2 |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
154 " regexp pattern |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
155 " text to test the pattern on |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
156 " expected match (optional) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
157 " expected submatch 1 (optional) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
158 " expected submatch 2 (optional) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
159 " etc. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
160 " When there is no match use only the first two items. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
161 let tl = [] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
162 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
163 call add(tl, [2, 'ab', 'aab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
164 call add(tl, [2, 'b', 'abcdef', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
165 call add(tl, [2, 'bc*', 'abccccdef', 'bcccc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
166 call add(tl, [2, 'bc\{-}', 'abccccdef', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
167 call add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
168 call add(tl, [2, 'bc*', 'abbdef', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
169 call add(tl, [2, 'c*', 'ccc', 'ccc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
170 call add(tl, [2, 'bc*', 'abdef', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
171 call add(tl, [2, 'c*', 'abdef', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
172 call add(tl, [2, 'bc\+', 'abccccdef', 'bcccc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
173 call add(tl, [2, 'bc\+', 'abdef']) " no match |
19969
b07672d13ff9
patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents:
19958
diff
changeset
|
174 " match escape character in a string |
b07672d13ff9
patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents:
19958
diff
changeset
|
175 call add(tl, [2, '.\e.', "one\<Esc>two", "e\<Esc>t"]) |
b07672d13ff9
patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents:
19958
diff
changeset
|
176 " match backspace character in a string |
b07672d13ff9
patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents:
19958
diff
changeset
|
177 call add(tl, [2, '.\b.', "one\<C-H>two", "e\<C-H>t"]) |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
178 " match newline character in a string |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
179 call add(tl, [2, 'o\nb', "foo\nbar", "o\nb"]) |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
180 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
181 " operator \| |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
182 call add(tl, [2, 'a\|ab', 'cabd', 'a']) " alternation is ordered |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
183 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
184 call add(tl, [2, 'c\?', 'ccb', 'c']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
185 call add(tl, [2, 'bc\?', 'abd', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
186 call add(tl, [2, 'bc\?', 'abccd', 'bc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
187 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
188 call add(tl, [2, '\va{1}', 'ab', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
189 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
190 call add(tl, [2, '\va{2}', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
191 call add(tl, [2, '\va{2}', 'caad', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
192 call add(tl, [2, '\va{2}', 'aba']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
193 call add(tl, [2, '\va{2}', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
194 call add(tl, [2, '\va{2}', 'abaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
195 call add(tl, [2, '\va{2}', 'aaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
196 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
197 call add(tl, [2, '\vb{1}', 'abca', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
198 call add(tl, [2, '\vba{2}', 'abaa', 'baa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
199 call add(tl, [2, '\vba{3}', 'aabaac']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
200 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
201 call add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
202 call add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
203 call add(tl, [2, '\v(ab){1}', 'acb']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
204 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
205 call add(tl, [2, '\v(ab){0,2}', 'acb', "", ""]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
206 call add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
207 call add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
208 call add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
209 call add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
210 call add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
211 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
212 call add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
213 call add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
214 call add(tl, [2, '\v(ab){2}', 'abac']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
215 call add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
216 call add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
217 call add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
218 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
219 call add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
220 call add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
221 call add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
222 call add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
223 call add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
224 call add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
225 call add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
226 call add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
227 call add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
228 call add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
229 call add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
230 call add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
231 call add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
232 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
233 call add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
234 call add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
235 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
236 call add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
237 call add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
238 call add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
239 call add(tl, [2, '\v(a{1,3}){3}', 'daac']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
240 call add(tl, [2, '\v(a{1,2}){2}', 'dac']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
241 call add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
242 call add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
243 call add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
244 call add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
245 call add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
246 call add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
247 call add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
248 call add(tl, [2, '\v(abc){2}', 'abcabd', ]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
249 call add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
250 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
251 call add(tl, [2, 'a*', 'cc', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
252 call add(tl, [2, '\v(a*)+', 'cc', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
253 call add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
254 call add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
255 call add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
256 call add(tl, [2, '\v(a{0,2})+', 'cc', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
257 call add(tl, [2, '\v(a*)+', '', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
258 call add(tl, [2, '\v((a*)+)+', '', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
259 call add(tl, [2, '\v((ab)*)+', '', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
260 call add(tl, [2, '\va{1,3}', 'aab', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
261 call add(tl, [2, '\va{2,3}', 'abaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
262 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
263 call add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
264 call add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
265 call add(tl, [2, '\va{2}|b{2}', 'abab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
266 call add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
267 call add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
268 call add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
269 call add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
270 call add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
271 call add(tl, [2, '\va*a{2}', 'a', ]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
272 call add(tl, [2, '\va*a{2}', 'aa', 'aa' ]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
273 call add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
274 call add(tl, [2, '\va*a{2}', 'bbbabcc', ]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
275 call add(tl, [2, '\va*b*|a*c*', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
276 call add(tl, [2, '\va{1}b{1}|a{1}b{1}', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
277 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
278 " submatches |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
279 call add(tl, [2, '\v(a)', 'ab', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
280 call add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
281 call add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
282 call add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
283 call add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
284 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
285 call add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
286 call add(tl, [2, 'x', 'abcdef']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
287 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
288 " |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
289 " Simple tests |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
290 " |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
291 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
292 " Search single groups |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
293 call add(tl, [2, 'ab', 'aab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
294 call add(tl, [2, 'ab', 'baced']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
295 call add(tl, [2, 'ab', ' ab ', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
296 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
297 " Search multi-modifiers |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
298 call add(tl, [2, 'x*', 'xcd', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
299 call add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
300 " empty match is good |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
301 call add(tl, [2, 'x*', 'abcdoij', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
302 " no match here |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
303 call add(tl, [2, 'x\+', 'abcdoin']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
304 call add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
305 call add(tl, [2, 'x\+', 'xxxxx', 'xxxxx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
306 call add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
307 call add(tl, [2, 'x\=', 'x sdfoij', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
308 call add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
309 call add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
310 call add(tl, [2, 'x\?', 'x sdfoij', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
311 " empty match is good |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
312 call add(tl, [2, 'x\?', 'abc sfoij', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
313 call add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
314 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
315 call add(tl, [2, 'a\{0,0}', 'abcdfdoij', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
316 " same thing as 'a?' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
317 call add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
318 " same thing as 'a\{0,1}' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
319 call add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
320 call add(tl, [2, 'a\{3,6}', 'aa siofuh']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
321 call add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
322 call add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
323 call add(tl, [2, 'a\{0}', 'asoiuj', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
324 call add(tl, [2, 'a\{2}', 'aaaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
325 call add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj nasfvius afg aaaa sfiuhuhiushf', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
326 call add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
327 " same thing as 'a*' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
328 call add(tl, [2, 'a\{0,}', 'oij sdigfusnf', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
329 call add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
330 call add(tl, [2, 'a\{2,}', 'sdfiougjdsafg']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
331 call add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
332 call add(tl, [2, 'a\{5,}', 'xxaaaaxxx ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
333 call add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
334 call add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
335 call add(tl, [2, 'a\{,5}', 'abcd', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
336 call add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
337 " leading star as normal char when \{} follows |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
338 call add(tl, [2, '^*\{4,}$', '***']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
339 call add(tl, [2, '^*\{4,}$', '****', '****']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
340 call add(tl, [2, '^*\{4,}$', '*****', '*****']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
341 " same thing as 'a*' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
342 call add(tl, [2, 'a\{}', 'bbbcddiuhfcd', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
343 call add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
344 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
345 call add(tl, [2, 'a\{-0,0}', 'abcdfdoij', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
346 " anti-greedy version of 'a?' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
347 call add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
348 call add(tl, [2, 'a\{-3,6}', 'aa siofuh']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
349 call add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
350 call add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
351 call add(tl, [2, 'a\{-0}', 'asoiuj', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
352 call add(tl, [2, 'a\{-2}', 'aaaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
353 call add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
354 call add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
355 call add(tl, [2, 'a\{-0,}', 'aaaaa aa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
356 call add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
357 call add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
358 call add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
359 call add(tl, [2, 'a\{-,5}', 'abcd', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
360 call add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
361 " anti-greedy version of 'a*' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
362 call add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
363 call add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
364 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
365 " Test groups of characters and submatches |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
366 call add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
367 call add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
368 call add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
369 call add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
370 call add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupiiiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
371 call add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obelix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
372 call add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', 'yyxxzz', 'yyxxzz', 'yyxxzz']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
373 call add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
374 call add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
375 call add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
376 call add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
377 call add(tl, [2, '\p*', 'aá ', 'aá ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
378 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
379 " Test greedy-ness and lazy-ness |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
380 call add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
381 call add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
382 call add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
383 call add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
384 call add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa','xayzxayz']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
385 call add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzxayzxa','']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
386 call add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
387 call add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
388 call add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
389 call add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
390 call add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
391 call add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
392 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
393 " Test Character classes |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
394 call add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
395 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
396 " Test collections and character range [] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
397 call add(tl, [2, '\v[a]', 'abcd', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
398 call add(tl, [2, 'a[bcd]', 'abcd', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
399 call add(tl, [2, 'a[b-d]', 'acbd', 'ac']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
400 call add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
401 call add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijklmnopqrstuvwxyz']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
402 call add(tl, [2, '[[:alpha:]\+]', '6x8','x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
403 call add(tl, [2, '[^abc]\+','abcabcabc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
404 call add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
405 call add(tl, [2, '[^abc]\+','ddddddda','ddddddd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
406 call add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
407 call add(tl, [2, '[a-f]*','iiiiiiii','']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
408 call add(tl, [2, '[a-f]*','abcdefgh','abcdef']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
409 call add(tl, [2, '[^a-f]\+','abcdefgh','gh']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
410 call add(tl, [2, '[a-c]\{-3,6}','abcabc','abc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
411 call add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
412 call add(tl, [2, '[-a]', '-', '-']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
413 call add(tl, [2, '[a-]', '-', '-']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
414 call add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
415 call add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
416 " filename regexp |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
417 call add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
418 " special chars |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
419 call add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
420 " collation elem |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
421 call add(tl, [2, '[[.a.]]\+', 'aa', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
422 " middle of regexp |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
423 call add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
424 call add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
425 call add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
426 call add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
427 call add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
428 call add(tl, [2, '\_f', " \na ", "\n"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
429 call add(tl, [2, '\_f\+', " \na ", "\na"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
430 call add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
431 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
432 " Test start/end of line, start/end of file |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
433 call add(tl, [2, '^a.', "a_\nb ", "a_"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
434 call add(tl, [2, '^a.', "b a \na_"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
435 call add(tl, [2, '.a$', " a\n "]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
436 call add(tl, [2, '.a$', " a b\n_a", "_a"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
437 call add(tl, [2, '\%^a.', "a a\na", "a "]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
438 call add(tl, [2, '\%^a', " a \na "]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
439 call add(tl, [2, '.a\%$', " a\n "]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
440 call add(tl, [2, '.a\%$', " a\n_a", "_a"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
441 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
442 " Test recognition of character classes |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
443 call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
444 call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
445 call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
446 call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
447 call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
448 call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
449 call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
450 call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
451 call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
452 call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
453 call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
454 call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
455 call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
456 call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
457 call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
458 call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
459 call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
460 call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
461 call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
462 call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
463 call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
464 call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
465 call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
466 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
467 " Tests for \z features |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
468 " match ends at \ze |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
469 call add(tl, [2, 'xx \ze test', 'xx ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
470 call add(tl, [2, 'abc\zeend', 'oij abcend', 'abc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
471 call add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
472 call add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
473 call add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
474 call add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
475 " match starts at \zs |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
476 call add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
477 call add(tl, [2, 'aa \zsax', ' ax']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
478 call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
479 call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
480 call add(tl, [2, '\>\zs.', 'aword. ', '.']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
481 call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
482 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
483 " Tests for \@= and \& features |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
484 call add(tl, [2, 'abc\@=', 'abc', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
485 call add(tl, [2, 'abc\@=cd', 'abcd', 'abcd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
486 call add(tl, [2, 'abc\@=', 'ababc', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
487 " will never match, no matter the input text |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
488 call add(tl, [2, 'abcd\@=e', 'abcd']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
489 " will never match |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
490 call add(tl, [2, 'abcd\@=e', 'any text in here ... ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
491 call add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
492 call add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
493 call add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', 'John is Bobs friend']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
494 call add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
495 call add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
496 call add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
497 call add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep', 'test1']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
498 call add(tl, [2, 'foo\(bar\)\@!', 'foobar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
499 call add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
500 call add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
501 call add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
502 call add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
503 call add(tl, [2, '\(foo\)\@!...bar', 'foobar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
504 call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
505 call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
506 call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
507 call add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
508 call add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 's']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
509 call add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
510 call add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
511 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
512 " Combining different tests and features |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
513 call add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
514 call add(tl, [2, '', 'abcd', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
515 call add(tl, [2, '\v(())', 'any possible text', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
516 call add(tl, [2, '\v%(ab(xyz)c)', ' abxyzc ', 'abxyzc', 'xyz']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
517 call add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
518 call add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
519 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
520 " \%u and friends |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
521 call add(tl, [2, '\%d32', 'yes no', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
522 call add(tl, [2, '\%o40', 'yes no', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
523 call add(tl, [2, '\%x20', 'yes no', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
524 call add(tl, [2, '\%u0020', 'yes no', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
525 call add(tl, [2, '\%U00000020', 'yes no', ' ']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
526 call add(tl, [2, '\%d0', "yes\x0ano", "\x0a"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
527 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
528 "" \%[abc] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
529 call add(tl, [2, 'foo\%[bar]', 'fobar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
530 call add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
531 call add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
532 call add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
533 call add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
534 call add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
535 call add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
536 call add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
537 call add(tl, [2, '\%[bar]x', 'barxx', 'barx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
538 call add(tl, [2, '\%[bar]x', 'bxx', 'bx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
539 call add(tl, [2, '\%[bar]x', 'xxx', 'x']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
540 call add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
541 call add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
542 call add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
543 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
544 " Alternatives, must use first longest match |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
545 call add(tl, [2, 'goo\|go', 'google', 'goo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
546 call add(tl, [2, '\<goo\|\<go', 'google', 'goo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
547 call add(tl, [2, '\<goo\|go', 'google', 'goo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
548 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
549 " Back references |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
550 call add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
551 call add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
552 call add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e', 'f', 'g', 'h', 'i']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
553 call add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
554 call add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
555 call add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo.com', 'bat']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
556 call add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
557 call add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo.bat', 'bat', 'bat']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
558 call add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '${0}', '0']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
559 call add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
560 call add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
561 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
562 " Look-behind with limit |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
563 call add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
564 call add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
565 call add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
566 call add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
567 call add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
568 call add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
569 call add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
570 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
571 " look-behind match in front of a zero-width item |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
572 call add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
573 call add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '1970']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
574 call add(tl, [2, '\(foo\)\@<=\>', 'foobar']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
575 call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
576 call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
577 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
578 " complicated look-behind match |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
579 call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
580 call add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
581 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
582 "" \@> |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
583 call add(tl, [2, '\(a*\)\@>a', 'aaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
584 call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
585 call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
586 call add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
587 " TODO: BT engine does not restore submatch after failure |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
588 call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
589 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
590 " "\_" prepended negated collection matches EOL |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
591 call add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
592 call add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
593 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
594 " Requiring lots of states. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
595 call add(tl, [2, '[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}', " 12345678-1234-1234-1234-123456789012 ", "12345678-1234-1234-1234-123456789012", "1234-"]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
596 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
597 " Skip adding state twice |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
598 call add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", "#if", ' FOO']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
599 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
600 " Test \%V atom |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
601 call add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamtausgabe [Salleck] Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtausgabe', 'Gesamt']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
602 |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
603 " Test for ignoring case and matching repeated characters |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
604 call add(tl, [2, '\cb\+', 'aAbBbBcC', 'bBbB']) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
605 |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
606 " Run the tests |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
607 for t in tl |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
608 let re = t[0] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
609 let pat = t[1] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
610 let text = t[2] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
611 let matchidx = 3 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
612 for engine in [0, 1, 2] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
613 if engine == 2 && re == 0 || engine == 1 && re == 1 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
614 continue |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
615 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
616 let ®expengine = engine |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
617 try |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
618 let l = matchlist(text, pat) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
619 catch |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
620 call assert_report('Error ' . engine . ': pat: \"' . pat |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
621 \ . '\", text: \"' . text . '\", caused an exception: \"' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
622 \ . v:exception . '\"') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
623 endtry |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
624 " check the match itself |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
625 if len(l) == 0 && len(t) > matchidx |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
626 call assert_report('Error ' . engine . ': pat: \"' . pat |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
627 \ . '\", text: \"' . text . '\", did not match, expected: \"' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
628 \ . t[matchidx] . '\"') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
629 elseif len(l) > 0 && len(t) == matchidx |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
630 call assert_report('Error ' . engine . ': pat: \"' . pat |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
631 \ . '\", text: \"' . text . '\", match: \"' . l[0] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
632 \ . '\", expected no match') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
633 elseif len(t) > matchidx && l[0] != t[matchidx] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
634 call assert_report('Error ' . engine . ': pat: \"' . pat |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
635 \ . '\", text: \"' . text . '\", match: \"' . l[0] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
636 \ . '\", expected: \"' . t[matchidx] . '\"') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
637 else |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
638 " Test passed |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
639 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
640 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
641 " check all the nine submatches |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
642 if len(l) > 0 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
643 for i in range(1, 9) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
644 if len(t) <= matchidx + i |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
645 let e = '' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
646 else |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
647 let e = t[matchidx + i] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
648 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
649 if l[i] != e |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
650 call assert_report('Error ' . engine . ': pat: \"' . pat |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
651 \ . '\", text: \"' . text . '\", submatch ' . i . ': \"' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
652 \ . l[i] . '\", expected: \"' . e . '\"') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
653 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
654 endfor |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
655 unlet i |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
656 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
657 endfor |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
658 endfor |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
659 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
660 unlet t tl e l |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
661 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
662 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
663 " Tests for multi-line regexp patterns without multi-byte support. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
664 func Test_regexp_multiline_pat() |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
665 " tl is a List of Lists with: |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
666 " regexp engines to test |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
667 " 0 - test with 'regexpengine' values 0 and 1 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
668 " 1 - test with 'regexpengine' values 0 and 2 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
669 " 2 - test with 'regexpengine' values 0, 1 and 2 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
670 " regexp pattern |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
671 " List with text to test the pattern on |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
672 " List with the expected match |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
673 let tl = [] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
674 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
675 " back references |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
676 call add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
677 call add(tl, [2, '\v.*\/(.*)\n.*\/\1$', ['./Dir1/Dir2/zyxwvuts.txt', './Dir1/Dir2/abcdefgh.bat', '', './Dir1/Dir2/file1.txt', './OtherDir1/OtherDir2/file1.txt'], ['./Dir1/Dir2/zyxwvuts.txt', './Dir1/Dir2/abcdefgh.bat', '', 'XX']]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
678 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
679 " line breaks |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
680 call add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def', 'XXjk', 'lmn']]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
681 |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
682 " Any single character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
683 call add(tl, [2, '\_.\+', ['a', 'b', 'c'], ['XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
684 " Any identifier or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
685 call add(tl, [2, '\_i\+', ['a', 'b', ';', '2'], ['XX;XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
686 " Any identifier but excluding digits or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
687 call add(tl, [2, '\_I\+', ['a', 'b', ';', '2'], ['XX;XX2XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
688 " Any keyword or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
689 call add(tl, [2, '\_k\+', ['a', 'b', '=', '2'], ['XX=XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
690 " Any keyword but excluding digits or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
691 call add(tl, [2, '\_K\+', ['a', 'b', '=', '2'], ['XX=XX2XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
692 " Any filename character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
693 call add(tl, [2, '\_f\+', ['a', 'b', '.', '5'], ['XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
694 " Any filename character but excluding digits or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
695 call add(tl, [2, '\_F\+', ['a', 'b', '.', '5'], ['XX5XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
696 " Any printable character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
697 call add(tl, [2, '\_p\+', ['a', 'b', '=', '4'], ['XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
698 " Any printable character excluding digits or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
699 call add(tl, [2, '\_P\+', ['a', 'b', '=', '4'], ['XX4XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
700 " Any whitespace character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
701 call add(tl, [2, '\_s\+', [' ', ' ', 'a', 'b'], ['XXaXXbXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
702 " Any non-whitespace character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
703 call add(tl, [2, '\_S\+', [' ', ' ', 'a', 'b'], [' XX XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
704 " Any decimal digit or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
705 call add(tl, [2, '\_d\+', ['1', 'a', '2', 'b', '3'], ['XXaXXbXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
706 " Any non-decimal digit or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
707 call add(tl, [2, '\_D\+', ['1', 'a', '2', 'b', '3'], ['1XX2XX3XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
708 " Any hexadecimal digit or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
709 call add(tl, [2, '\_x\+', ['1', 'a', 'g', '9', '8'], ['XXgXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
710 " Any non-hexadecimal digit or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
711 call add(tl, [2, '\_X\+', ['1', 'a', 'g', '9', '8'], ['1XXaXX9XX8XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
712 " Any octal digit or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
713 call add(tl, [2, '\_o\+', ['0', '7', '8', '9', '0'], ['XX8XX9XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
714 " Any non-octal digit or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
715 call add(tl, [2, '\_O\+', ['0', '7', '8', '9', '0'], ['0XX7XX0XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
716 " Any word character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
717 call add(tl, [2, '\_w\+', ['A', 'B', '=', 'C', 'D'], ['XX=XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
718 " Any non-word character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
719 call add(tl, [2, '\_W\+', ['A', 'B', '=', 'C', 'D'], ['AXXBXXCXXDXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
720 " Any head-of-word character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
721 call add(tl, [2, '\_h\+', ['a', '1', 'b', '2', 'c'], ['XX1XX2XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
722 " Any non-head-of-word character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
723 call add(tl, [2, '\_H\+', ['a', '1', 'b', '2', 'c'], ['aXXbXXcXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
724 " Any alphabetic character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
725 call add(tl, [2, '\_a\+', ['a', '1', 'b', '2', 'c'], ['XX1XX2XX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
726 " Any non-alphabetic character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
727 call add(tl, [2, '\_A\+', ['a', '1', 'b', '2', 'c'], ['aXXbXXcXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
728 " Any lowercase character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
729 call add(tl, [2, '\_l\+', ['a', 'A', 'b', 'B'], ['XXAXXBXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
730 " Any non-lowercase character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
731 call add(tl, [2, '\_L\+', ['a', 'A', 'b', 'B'], ['aXXbXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
732 " Any uppercase character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
733 call add(tl, [2, '\_u\+', ['a', 'A', 'b', 'B'], ['aXXbXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
734 " Any non-uppercase character or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
735 call add(tl, [2, '\_U\+', ['a', 'A', 'b', 'B'], ['XXAXXBXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
736 " Collection or end-of-line |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
737 call add(tl, [2, '\_[a-z]\+', ['a', 'A', 'b', 'B'], ['XXAXXBXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
738 " start of line anywhere in the text |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
739 call add(tl, [2, 'one\zs\_s*\_^\zetwo', |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
740 \ ['', 'one', ' two', 'one', '', 'two'], |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
741 \ ['', 'one', ' two', 'oneXXtwo']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
742 " end of line anywhere in the text |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
743 call add(tl, [2, 'one\zs\_$\_s*two', |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
744 \ ['', 'one', ' two', 'one', '', 'two'], ['', 'oneXX', 'oneXX']]) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
745 |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
746 " Check that \_[0-9] matching EOL does not break a following \> |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
747 call add(tl, [2, '\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>', ['', 'localnet/192.168.0.1', ''], ['', 'localnet/XX', '']]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
748 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
749 " Check a pattern with a line break and ^ and $ |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
750 call add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
751 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
752 call add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
753 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
754 " Run the multi-line tests |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
755 for t in tl |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
756 let re = t[0] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
757 let pat = t[1] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
758 let before = t[2] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
759 let after = t[3] |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
760 for engine in [0, 1, 2] |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
761 if engine == 2 && re == 0 || engine == 1 && re == 1 |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
762 continue |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
763 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
764 let ®expengine = engine |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
765 new |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
766 call setline(1, before) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
767 exe '%s/' . pat . '/XX/' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
768 let result = getline(1, '$') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
769 q! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
770 if result != after |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
771 call assert_report('Error: pat: \"' . pat . '\", text: \"' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
772 \ . string(before) . '\", expected: \"' . string(after) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
773 \ . '\", got: \"' . string(result) . '\"') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
774 else |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
775 " Test passed |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
776 endif |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
777 endfor |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
778 endfor |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
779 unlet t tl |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
780 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
781 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
782 " Check that using a pattern on two lines doesn't get messed up by using |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
783 " matchstr() with \ze in between. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
784 func Test_matchstr_with_ze() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
785 new |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
786 call append(0, ['Substitute here:', '<T="">Ta 5</Title>', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
787 \ '<T="">Ac 7</Title>']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
788 call cursor(1, 1) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
789 set re=0 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
790 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
791 .+1,.+2s/""/\='"' . matchstr(getline("."), '\d\+\ze<') . '"' |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
792 call assert_equal(['Substitute here:', '<T="5">Ta 5</Title>', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
793 \ '<T="7">Ac 7</Title>', ''], getline(1, '$')) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
794 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
795 bwipe! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
796 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
797 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
798 " Check a pattern with a look beind crossing a line boundary |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
799 func Test_lookbehind_across_line() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
800 new |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
801 call append(0, ['Behind:', 'asdfasd<yyy', 'xxstart1', 'asdfasd<yy', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
802 \ 'xxxstart2', 'asdfasd<yy', 'xxstart3']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
803 call cursor(1, 1) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
804 call search('\(<\_[xy]\+\)\@3<=start') |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
805 call assert_equal([0, 7, 3, 0], getpos('.')) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
806 bwipe! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
807 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
808 |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
809 " Test for the \%V atom (match inside the visual area) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
810 func Regex_Match_Visual_Area() |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
811 call append(0, ['Visual:', 'thexe the thexethe', 'andaxand andaxand', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
812 \ 'oooxofor foroxooo', 'oooxofor foroxooo']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
813 call cursor(1, 1) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
814 exe "normal jfxvfx:s/\\%Ve/E/g\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
815 exe "normal jV:s/\\%Va/A/g\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
816 exe "normal jfx\<C-V>fxj:s/\\%Vo/O/g\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
817 call assert_equal(['Visual:', 'thexE thE thExethe', 'AndAxAnd AndAxAnd', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
818 \ 'oooxOfOr fOrOxooo', 'oooxOfOr fOrOxooo', ''], getline(1, '$')) |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
819 %d |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
820 endfunc |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
821 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
822 " Check matching Visual area |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
823 func Test_matching_visual_area() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
824 new |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
825 set regexpengine=1 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
826 call Regex_Match_Visual_Area() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
827 set regexpengine=2 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
828 call Regex_Match_Visual_Area() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
829 set regexpengine& |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
830 bwipe! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
831 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
832 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
833 " Check matching marks |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
834 func Regex_Mark() |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
835 call append(0, ['', '', '', 'Marks:', 'asdfSasdfsadfEasdf', 'asdfSas', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
836 \ 'dfsadfEasdf', '', '', '', '', '']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
837 call cursor(4, 1) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
838 exe "normal jfSmsfEme:.-4,.+6s/.\\%>'s.*\\%<'e../here/\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
839 exe "normal jfSmsj0fEme:.-4,.+6s/.\\%>'s\\_.*\\%<'e../again/\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
840 call assert_equal(['', '', '', 'Marks:', 'asdfhereasdf', 'asdfagainasdf', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
841 \ '', '', '', '', '', ''], getline(1, '$')) |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
842 %d |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
843 endfunc |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
844 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
845 func Test_matching_marks() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
846 new |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
847 set regexpengine=1 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
848 call Regex_Mark() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
849 set regexpengine=2 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
850 call Regex_Mark() |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
851 bwipe! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
852 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
853 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
854 " Check patterns matching cursor position. |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
855 func s:curpos_test() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
856 new |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
857 call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
858 \ "\t\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
859 \ ' xxxxxxxxxxxx xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx']) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
860 call setpos('.', [0, 1, 0, 0]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
861 s/\%>3c.//g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
862 call setpos('.', [0, 2, 4, 0]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
863 s/\%#.*$//g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
864 call setpos('.', [0, 3, 0, 0]) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
865 s/\%<3c./_/g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
866 %s/\%4l\%>5c./_/g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
867 %s/\%6l\%>25v./_/g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
868 %s/\%>6l\%3c./!/g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
869 %s/\%>7l\%12c./?/g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
870 %s/\%>7l\%<9l\%>5v\%<8v./#/g |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
871 $s/\%(|\u.*\)\@<=[^|\t]\+$//ge |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
872 call assert_equal(['ffo', 'bob', '__ooooo', 'koooo__', 'moooooo', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
873 \ ' f__', 'ab!babababababfoo', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
874 \ 'ba!ab##abab?bafoo', '**!*****_', |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
875 \ ' ! xxx?xxxxxxxx xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx'], |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
876 \ getline(1, '$')) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
877 bwipe! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
878 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
879 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
880 func Test_matching_curpos() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
881 set re=0 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
882 call s:curpos_test() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
883 set re=1 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
884 call s:curpos_test() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
885 set re=2 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
886 call s:curpos_test() |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
887 set re& |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
888 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
889 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
890 " Test for matching the start and end of a buffer |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
891 func Regex_start_end_buffer() |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
892 call setline(1, repeat(['vim edit'], 20)) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
893 /\%^ |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
894 call assert_equal([0, 1, 1, 0], getpos('.')) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
895 exe "normal 50%/\\%^..\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
896 call assert_equal([0, 1, 1, 0], getpos('.')) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
897 exe "normal 50%/\\%$\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
898 call assert_equal([0, 20, 8, 0], getpos('.')) |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
899 exe "normal 6gg/..\\%$\<CR>" |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
900 call assert_equal([0, 20, 7, 0], getpos('.')) |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
901 %d |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
902 endfunc |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
903 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
904 func Test_start_end_of_buffer_match() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
905 new |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
906 set regexpengine=1 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
907 call Regex_start_end_buffer() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
908 set regexpengine=2 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
909 call Regex_start_end_buffer() |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
910 bwipe! |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
911 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
912 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
913 " Check for detecting error |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
914 func Test_regexp_error() |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
915 call assert_fails("call matchlist('x x', '\\%#=1 \\zs*')", 'E888:') |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
916 call assert_fails("call matchlist('x x', '\\%#=1 \\ze*')", 'E888:') |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
917 call assert_fails("call matchlist('x x', '\\%#=2 \\zs*')", 'E888:') |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
918 call assert_fails("call matchlist('x x', '\\%#=2 \\ze*')", 'E888:') |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
919 call assert_fails('exe "normal /\\%#=1\\%[x\\%[x]]\<CR>"', 'E369:') |
19969
b07672d13ff9
patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents:
19958
diff
changeset
|
920 call assert_fails("call matchstr('abcd', '\\%o841\\%o142')", 'E678:') |
b07672d13ff9
patch 8.2.0540: regexp and other code not tested
Bram Moolenaar <Bram@vim.org>
parents:
19958
diff
changeset
|
921 call assert_equal('', matchstr('abcd', '\%o181\%o142')) |
19958
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
922 endfunc |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
923 |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
924 " Test for using the last substitute string pattern (~) |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
925 func Test_regexp_last_subst_string() |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
926 new |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
927 s/bar/baz/e |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
928 call assert_equal(matchstr("foo\nbaz\nbar", "\\%#=1\~"), "baz") |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
929 call assert_equal(matchstr("foo\nbaz\nbar", "\\%#=2\~"), "baz") |
0b42b5e50344
patch 8.2.0535: regexp patterns not fully tested
Bram Moolenaar <Bram@vim.org>
parents:
19249
diff
changeset
|
930 close! |
18898
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
931 endfunc |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
932 |
ad9e9e92ad55
patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents:
15904
diff
changeset
|
933 " vim: shiftwidth=2 sts=2 expandtab |