annotate src/testdir/test_regexp_latin.vim @ 18966:6bd715870e32 v8.2.0044

patch 8.2.0044: expression type is used inconsistently Commit: https://github.com/vim/vim/commit/07a3db89b8953bd0964895badb3b662f7514bc10 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Dec 25 18:14:14 2019 +0100 patch 8.2.0044: expression type is used inconsistently Problem: Expression type is used inconsistently. Solution: Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values. Rename "TYPE_" to "ETYPE_" to avoid confusion.
author Bram Moolenaar <Bram@vim.org>
date Wed, 25 Dec 2019 18:15:04 +0100
parents ad9e9e92ad55
children 2a017e9dc6da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 func s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 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
7 let groups = split(str)
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 for group1 in groups
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 for c in split(group1, '\zs')
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 " 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
11 " character in group
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 call assert_match('^[[=' . c . '=]]*$', group1)
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 for group2 in groups
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 if group2 != group1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 " 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
16 " a character in any other group
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 call assert_equal(-1, match(group2, '[[=' . c . '=]]'))
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 endif
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 endfor
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 endfunc
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 func Test_equivalence_re1()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 set re=1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 call s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 endfunc
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 func Test_equivalence_re2()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 set re=2
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 call s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 endfunc
9890
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
33
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
34 func Test_recursive_substitute()
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
35 new
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
36 s/^/\=execute("s#^##gn")
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
37 " 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
38 call setwinvar(1, 'myvar', 1)
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
39 bwipe!
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
40 endfunc
10168
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
41
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
42 func Test_nested_backrefs()
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
43 " Check example in change.txt.
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
44 new
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
45 for re in range(0, 2)
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
46 exe 'set re=' . re
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
47 call setline(1, 'aa ab x')
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
48 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
49 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
50
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-', 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
52 endfor
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
53 bwipe!
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
54 set re=0
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
55 endfunc
10170
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
56
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
57 func Test_eow_with_optional()
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
58 let expected = ['abc def', 'abc', 'def', '', '', '', '', '', '', '']
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
59 for re in range(0, 2)
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
60 exe 'set re=' . re
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
61 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
62 call assert_equal(expected, actual)
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
63 endfor
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
64 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
65
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
66 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
67 new
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
68 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
69 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
70 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
71 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
72 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
73 bwipe!
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
74 endfunc
15486
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
75
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
76 func Test_multi_failure()
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
77 set re=1
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
78 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
79 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
80 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
81 set re=2
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**', 'E871:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
83 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
84 call assert_fails('/a\{a}', 'E870:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
85 set re=0
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
86 endfunc
15796
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
87
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
88 func Test_recursive_addstate()
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
89 " 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
90 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
91 call assert_equal(0, lnum)
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
92 endfunc
15806
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
93
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
94 func Test_out_of_memory()
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
95 new
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
96 s/^/,n
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
97 " This will be slow...
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
98 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
99 endfunc
15854
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
100
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
101 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
102 new
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
103 " 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
104 s/^/[[=
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
105 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
106 s/.*/[[.
9cd9bf2897de patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15856
diff changeset
107 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
108 endfunc
15856
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
109
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
110 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
111 set noincsearch
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
112 set re=1
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
113 new
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
114 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
115 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
116 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
117 new
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
118 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
119 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
120 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
121 bwipe!
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
122 bwipe!
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
123 set re=0
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
124 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
125
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
126 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
127 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
128 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
129 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
130 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
131 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
132 endfunc
15904
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
133
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
134 func Test_pattern_compile_speed()
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
135 if !exists('+spellcapcheck') || !has('reltime')
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
136 return
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
137 endif
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
138 let start = reltime()
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
139 " 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
140 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
141 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
142 set spc=
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
143 endfunc
18898
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
144
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
145 " 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
146 func Test_regexp_single_line_pat()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
147 " tl is a List of Lists with:
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
148 " regexp engine
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
149 " regexp pattern
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
150 " text to test the pattern on
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
151 " expected match (optional)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
152 " expected submatch 1 (optional)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
153 " expected submatch 2 (optional)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
154 " etc.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
155 " 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
156 let tl = []
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
157
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
158 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
159 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
160 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
161 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
162 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
163 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
164 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
165 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
166 call add(tl, [2, 'c*', 'abdef', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
167 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
168 call add(tl, [2, 'bc\+', 'abdef']) " no match
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
169
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
170 " operator \|
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
171 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
172
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
173 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
174 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
175 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
176
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
177 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
178
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
179 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
180 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
181 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
182 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
183 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
184 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
185
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
186 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
187 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
188 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
189
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
190 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
191 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
192 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
193
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
194 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
195 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
196 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
197 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
198 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
199 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
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){2}', 'abab', 'abab', '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){2}', 'cdababe', 'abab', '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){2}', 'abac'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
204 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
205 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
206 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
207
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
208 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
209 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
210 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
211 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
212 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
213 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
214 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
215 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
216 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
217 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
218 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
219 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
220 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
221
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}', 'dadaac', 'aa', 'a'])
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{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
224
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{1,2}){2}', 'daaac', 'aaa', 'a'])
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{1,3}){2}', 'daaaac', 'aaaa', 'a'])
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{1,3}){2}', 'daaaaac', 'aaaaa', '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,3}){3}', 'daac'])
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,2}){2}', 'dac'])
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+)+', 'daac', 'aa', '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+)+', 'aaa', 'aaa', 'aaa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
240 call add(tl, [2, 'a*', 'cc', ''])
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*)+', 'cc', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
242 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
243 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
244 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
245 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
246 call add(tl, [2, '\v(a*)+', '', ''])
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*)+)+', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
248 call add(tl, [2, '\v((ab)*)+', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
249 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
250 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
251
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
252 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
253 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
254 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
255 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
256 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
257 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
258 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
259 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
260 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
261 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
262 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
263 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
264 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
265 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
266
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
267 " submatches
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
268 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
269 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
270 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
271 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
272 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
273
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
274 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
275 call add(tl, [2, 'x', 'abcdef'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
276
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 " Simple tests
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
279 "
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
280
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
281 " Search single groups
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
282 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
283 call add(tl, [2, 'ab', 'baced'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
284 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
285
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
286 " Search multi-modifiers
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
287 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
288 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
289 " empty match is good
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
290 call add(tl, [2, 'x*', 'abcdoij', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
291 " no match here
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
292 call add(tl, [2, 'x\+', 'abcdoin'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
293 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
294 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
295 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
296 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
297 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
298 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
299 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
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\?', 'abc sfoij', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
302 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
303
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
304 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
305 " same thing as 'a?'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
306 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
307 " same thing as 'a\{0,1}'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
308 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
309 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
310 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
311 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
312 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
313 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
314 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
315 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
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,}', 'oij sdigfusnf', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
318 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
319 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
320 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
321 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
322 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
323 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
324 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
325 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
326 " 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
327 call add(tl, [2, '^*\{4,}$', '***'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
328 call add(tl, [2, '^*\{4,}$', '****', '****'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
329 call add(tl, [2, '^*\{4,}$', '*****', '*****'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
330 " same thing as 'a*'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
331 call add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
332 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
333
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,0}', 'abcdfdoij', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
335 " anti-greedy version of '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\{-0,1}', 'asiubid axxxaaa', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
337 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
338 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
339 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
340 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
341 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
342 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
343 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
344 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
345 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
346 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
347 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
348 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
349 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
350 " anti-greedy version of 'a*'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
351 call add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
352 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
353
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
354 " Test groups of characters and submatches
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
355 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
356 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
357 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
358 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
359 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
360 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
361 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
362 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
363 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
364 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
365 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
366 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
367
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
368 " Test greedy-ness and lazy-ness
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
369 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
370 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
371 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
372 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
373 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
374 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
375 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
376 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
377 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
378 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
379 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
380 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
381
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
382 " Test Character classes
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
383 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
384
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
385 " Test collections and character range []
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]', 'abcd', 'a'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
387 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
388 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
389 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
390 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
391 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
392 call add(tl, [2, '[^abc]\+','abcabcabc'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
393 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
394 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
395 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
396 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
397 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
398 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
399 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
400 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
401 call add(tl, [2, '[-a]', '-', '-'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
402 call add(tl, [2, '[a-]', '-', '-'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
403 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
404 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
405 " filename regexp
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
406 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
407 " special chars
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
408 call add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
409 " collation elem
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
410 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
411 " middle of regexp
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
412 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
413 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
414 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
415 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
416 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
417 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
418 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
419 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
420
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
421 " 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
422 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
423 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
424 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
425 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
426 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
427 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
428 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
429 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
430
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
431 " Test recognition of character classes
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
432 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
433 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
434 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
435 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
436 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
437 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
438 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
439 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
440 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
441 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
442 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
443 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
444 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
445 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
446 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
447 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
448 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
449 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
450 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
451 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
452 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
453 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
454 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
455
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
456 " Tests for \z features
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
457 " match ends at \ze
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
458 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
459 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
460 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
461 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
462 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
463 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
464 " match starts at \zs
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
465 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
466 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
467 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
468 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
469 call add(tl, [2, '\>\zs.', 'aword. ', '.'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
470 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
471
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
472 " Tests for \@= and \& features
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
473 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
474 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
475 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
476 " 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
477 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
478 " will never match
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
479 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
480 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
481 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
482 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
483 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
484 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
485 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
486 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
487 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
488 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
489 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
490 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
491 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
492 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
493 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
494 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
495 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
496 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
497 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
498 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
499 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
500
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
501 " Combining different tests and features
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
502 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
503 call add(tl, [2, '', 'abcd', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
504 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
505 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
506 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
507 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
508
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
509 " \%u and friends
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
510 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
511 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
512 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
513 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
514 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
515 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
516
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
517 "" \%[abc]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
518 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
519 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
520 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
521 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
522 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
523 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
524 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
525 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
526 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
527 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
528 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
529 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
530 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
531 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
532
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
533 " Alternatives, must use first longest match
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
534 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
535 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
536 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
537
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
538 " Back references
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
539 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
540 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
541 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
542 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
543 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
544 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
545 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
546 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
547 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
548 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
549 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
550
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
551 " Look-behind with limit
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
552 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
553 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
554 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
555 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
556 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
557 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
558 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
559
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
560 " 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
561 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
562 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
563 call add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
564 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
565 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
566
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
567 " complicated look-behind match
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
568 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
569 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
570
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
571 "" \@>
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
572 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
573 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
574 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
575 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
576 " 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
577 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
578
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
579 " "\_" prepended negated collection matches EOL
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
580 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
581 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
582
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
583 " Requiring lots of states.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
584 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
585
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
586 " Skip adding state twice
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
587 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
588
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
589 " Test \%V atom
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
590 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
591
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
592 " Run the tests
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
593 for t in tl
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
594 let re = t[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
595 let pat = t[1]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
596 let text = t[2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
597 let matchidx = 3
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
598 for engine in [0, 1, 2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
599 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
600 continue
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
601 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
602 let &regexpengine = engine
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
603 try
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
604 let l = matchlist(text, pat)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
605 catch
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
606 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
607 \ . '\", text: \"' . text . '\", caused an exception: \"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
608 \ . v:exception . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
609 endtry
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
610 " check the match itself
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
611 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
612 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
613 \ . '\", text: \"' . text . '\", did not match, expected: \"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
614 \ . t[matchidx] . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
615 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
616 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
617 \ . '\", text: \"' . text . '\", match: \"' . l[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
618 \ . '\", expected no match')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
619 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
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 . '\", match: \"' . l[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
622 \ . '\", expected: \"' . t[matchidx] . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
623 else
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
624 " Test passed
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
625 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
626
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
627 " check all the nine submatches
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
628 if len(l) > 0
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
629 for i in range(1, 9)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
630 if len(t) <= matchidx + i
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
631 let e = ''
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
632 else
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
633 let e = t[matchidx + i]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
634 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
635 if l[i] != e
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
636 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
637 \ . '\", text: \"' . text . '\", submatch ' . i . ': \"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
638 \ . l[i] . '\", expected: \"' . e . '\"')
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 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
641 unlet i
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
642 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
643 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
644 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
645
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
646 unlet t tl e l
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
647 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
648
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
649 " 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
650 func Test_regexp_multiline_pat()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
651 let tl = []
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
652
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
653 " back references
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
654 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
655 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
656
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
657 " line breaks
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
658 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
659
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
660 " 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
661 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
662
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
663 " 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
664 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
665
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
666 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
667
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
668 " Run the multi-line tests
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
669 for t in tl
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
670 let re = t[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
671 let pat = t[1]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
672 let before = t[2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
673 let after = t[3]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
674 for engine in [0, 1, 2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
675 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
676 continue
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
677 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
678 let &regexpengine = engine
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
679 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
680 call setline(1, before)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
681 exe '%s/' . pat . '/XX/'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
682 let result = getline(1, '$')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
683 q!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
684 if result != after
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
685 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
686 \ . string(before) . '\", expected: \"' . string(after)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
687 \ . '\", got: \"' . string(result) . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
688 else
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
689 " Test passed
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
690 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
691 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
692 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
693 unlet t tl
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
694 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
695
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
696 " 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
697 " matchstr() with \ze in between.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
698 func Test_matchstr_with_ze()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
699 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
700 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
701 \ '<T="">Ac 7</Title>'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
702 call cursor(1, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
703 set re=0
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
704
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
705 .+1,.+2s/""/\='"' . matchstr(getline("."), '\d\+\ze<') . '"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
706 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
707 \ '<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
708
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
709 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
710 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
711
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
712 " 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
713 func Test_lookbehind_across_line()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
714 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
715 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
716 \ 'xxxstart2', 'asdfasd<yy', 'xxstart3'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
717 call cursor(1, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
718 call search('\(<\_[xy]\+\)\@3<=start')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
719 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
720 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
721 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
722
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
723 " Check matching Visual area
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
724 func Test_matching_visual_area()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
725 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
726 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
727 \ 'oooxofor foroxooo', 'oooxofor foroxooo'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
728 call cursor(1, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
729 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
730 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
731 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
732 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
733 \ 'oooxOfOr fOrOxooo', 'oooxOfOr fOrOxooo', ''], getline(1, '$'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
734 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
735 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
736
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
737 " Check matching marks
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
738 func Test_matching_marks()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
739 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
740 call append(0, ['', '', '', 'Marks:', 'asdfSasdfsadfEasdf', 'asdfSas',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
741 \ 'dfsadfEasdf', '', '', '', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
742 call cursor(4, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
743 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
744 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
745 call assert_equal(['', '', '', 'Marks:', 'asdfhereasdf', 'asdfagainasdf',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
746 \ '', '', '', '', '', ''], getline(1, '$'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
747 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
748 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
749
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
750 " Check patterns matching cursor position.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
751 func s:curpos_test()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
752 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
753 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
754 \ "\t\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
755 \ ' 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
756 call setpos('.', [0, 1, 0, 0])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
757 s/\%>3c.//g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
758 call setpos('.', [0, 2, 4, 0])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
759 s/\%#.*$//g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
760 call setpos('.', [0, 3, 0, 0])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
761 s/\%<3c./_/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
762 %s/\%4l\%>5c./_/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
763 %s/\%6l\%>25v./_/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
764 %s/\%>6l\%3c./!/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
765 %s/\%>7l\%12c./?/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
766 %s/\%>7l\%<9l\%>5v\%<8v./#/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
767 $s/\%(|\u.*\)\@<=[^|\t]\+$//ge
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
768 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
769 \ ' f__', 'ab!babababababfoo',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
770 \ 'ba!ab##abab?bafoo', '**!*****_',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
771 \ ' ! 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
772 \ getline(1, '$'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
773 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
774 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
775
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
776 func Test_matching_curpos()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
777 set re=0
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
778 call s:curpos_test()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
779 set re=1
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
780 call s:curpos_test()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
781 set re=2
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
782 call s:curpos_test()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
783 set re&
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
784 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
785
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
786 " Test for matching the start and end of a buffer
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
787 func Test_start_end_of_buffer_match()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
788 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
789 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
790 /\%^
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
791 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
792 exe "normal 50%/\\%^..\<CR>"
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
793 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
794 exe "normal 50%/\\%$\<CR>"
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
795 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
796 exe "normal 6gg/..\\%$\<CR>"
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
797 call assert_equal([0, 20, 7, 0], getpos('.'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
798 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
799 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
800
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
801 " Check for detecting error
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
802 func Test_regexp_error()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
803 set regexpengine=2
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
804 call assert_fails("call matchlist('x x', ' \\ze*')", 'E888:')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
805 call assert_fails("call matchlist('x x', ' \\zs*')", 'E888:')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
806 set re&
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
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
809 " vim: shiftwidth=2 sts=2 expandtab