annotate src/testdir/test_regexp_latin.vim @ 19783:546bdeef35f1 v8.2.0448

patch 8.2.0448: various functions not properly tested Commit: https://github.com/vim/vim/commit/0e05de46226eb4e5ea580beefa71831f92d613d3 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 25 22:23:46 2020 +0100 patch 8.2.0448: various functions not properly tested Problem: Various functions not properly tested. Solution: Add more tests, especially for failures. (Yegappan Lakshmanan, closes #5843)
author Bram Moolenaar <Bram@vim.org>
date Wed, 25 Mar 2020 22:30:04 +0100
parents 2a017e9dc6da
children 0b42b5e50344
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
19249
2a017e9dc6da patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents: 18898
diff changeset
5 source check.vim
2a017e9dc6da patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents: 18898
diff changeset
6
8825
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 let str = "AÀÁÂÃÄÅ B C D EÈÉÊË F G H IÌÍÎÏ J K L M NÑ OÒÓÔÕÖØ P Q R S T UÙÚÛÜ V W X YÝ Z aàáâãäå b c d eèéêë f g h iìíîï j k l m nñ oòóôõöø p q r s t uùúûü v w x yýÿ z"
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 let groups = split(str)
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 for group1 in groups
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 for c in split(group1, '\zs')
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 " next statement confirms that equivalence class matches every
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 " character in group
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 call assert_match('^[[=' . c . '=]]*$', group1)
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 for group2 in groups
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 if group2 != group1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 " next statement converts that equivalence class doesn't match
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 " a character in any other group
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 call assert_equal(-1, match(group2, '[[=' . c . '=]]'))
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 endif
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 endfunc
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 func Test_equivalence_re1()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 set re=1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 call s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 endfunc
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 func Test_equivalence_re2()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 set re=2
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 call s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 endfunc
9890
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
35
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
36 func Test_recursive_substitute()
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
37 new
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
38 s/^/\=execute("s#^##gn")
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
39 " check we are now not in the sandbox
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
40 call setwinvar(1, 'myvar', 1)
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
41 bwipe!
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
42 endfunc
10168
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
43
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
44 func Test_nested_backrefs()
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
45 " Check example in change.txt.
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
46 new
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
47 for re in range(0, 2)
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
48 exe 'set re=' . re
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
49 call setline(1, 'aa ab x')
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
50 1s/\(\(a[a-d] \)*\)\(x\)/-\1- -\2- -\3-/
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
51 call assert_equal('-aa ab - -ab - -x-', getline(1))
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
52
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
53 call assert_equal('-aa ab - -ab - -x-', substitute('aa ab x', '\(\(a[a-d] \)*\)\(x\)', '-\1- -\2- -\3-', ''))
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
54 endfor
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
55 bwipe!
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
56 set re=0
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
57 endfunc
10170
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
58
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
59 func Test_eow_with_optional()
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
60 let expected = ['abc def', 'abc', 'def', '', '', '', '', '', '', '']
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
61 for re in range(0, 2)
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
62 exe 'set re=' . re
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
63 let actual = matchlist('abc def', '\(abc\>\)\?\s*\(def\)')
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
64 call assert_equal(expected, actual)
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
65 endfor
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
66 endfunc
11525
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
67
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
68 func Test_backref()
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
69 new
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
70 call setline(1, ['one', 'two', 'three', 'four', 'five'])
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
71 call assert_equal(3, search('\%#=1\(e\)\1'))
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
72 call assert_equal(3, search('\%#=2\(e\)\1'))
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
73 call assert_fails('call search("\\%#=1\\(e\\1\\)")', 'E65:')
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
74 call assert_fails('call search("\\%#=2\\(e\\1\\)")', 'E65:')
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
75 bwipe!
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
76 endfunc
15486
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
77
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
78 func Test_multi_failure()
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
79 set re=1
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
80 call assert_fails('/a**', 'E61:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
81 call assert_fails('/a*\+', 'E62:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
82 call assert_fails('/a\{a}', 'E554:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
83 set re=2
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
84 call assert_fails('/a**', 'E871:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
85 call assert_fails('/a*\+', 'E871:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
86 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
87 set re=0
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
88 endfunc
15796
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
89
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
90 func Test_recursive_addstate()
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
91 " This will call addstate() recursively until it runs into the limit.
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
92 let lnum = search('\v((){328}){389}')
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
93 call assert_equal(0, lnum)
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
94 endfunc
15806
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
95
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
96 func Test_out_of_memory()
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
97 new
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
98 s/^/,n
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
99 " This will be slow...
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
100 call assert_fails('call search("\\v((n||<)+);")', 'E363:')
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
101 endfunc
15854
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
102
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
103 func Test_get_equi_class()
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
104 new
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
105 " Incomplete equivalence class caused invalid memory access
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
106 s/^/[[=
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
107 call assert_equal(1, search(getline(1)))
15860
9cd9bf2897de patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15856
diff changeset
108 s/.*/[[.
9cd9bf2897de patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15856
diff changeset
109 call assert_equal(1, search(getline(1)))
15854
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
110 endfunc
15856
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
111
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
112 func Test_rex_init()
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
113 set noincsearch
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
114 set re=1
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
115 new
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
116 setlocal iskeyword=a-z
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
117 call setline(1, ['abc', 'ABC'])
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
118 call assert_equal(1, search('[[:keyword:]]'))
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
119 new
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
120 setlocal iskeyword=A-Z
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
121 call setline(1, ['abc', 'ABC'])
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
122 call assert_equal(2, search('[[:keyword:]]'))
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
123 bwipe!
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
124 bwipe!
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
125 set re=0
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
126 endfunc
15876
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
127
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
128 func Test_range_with_newline()
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
129 new
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
130 call setline(1, "a")
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
131 call assert_equal(0, search("[ -*\\n- ]"))
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
132 call assert_equal(0, search("[ -*\\t-\\n]"))
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
133 bwipe!
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
134 endfunc
15904
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
135
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
136 func Test_pattern_compile_speed()
19249
2a017e9dc6da patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents: 18898
diff changeset
137 CheckOption spellcapcheck
2a017e9dc6da patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents: 18898
diff changeset
138 CheckFunction reltimefloat
2a017e9dc6da patch 8.2.0183: tests fail when the float feature is disabled
Bram Moolenaar <Bram@vim.org>
parents: 18898
diff changeset
139
15904
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
140 let start = reltime()
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
141 " this used to be very slow, not it should be about a second
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
142 set spc=\\v(((((Nxxxxxxx&&xxxx){179})+)+)+){179}
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
143 call assert_inrange(0.01, 10.0, reltimefloat(reltime(start)))
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
144 set spc=
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
145 endfunc
18898
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
146
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
147 " Tests for regexp patterns without multi-byte support.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
148 func Test_regexp_single_line_pat()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
149 " tl is a List of Lists with:
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
150 " regexp engine
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
151 " regexp pattern
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
152 " text to test the pattern on
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
153 " expected match (optional)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
154 " expected submatch 1 (optional)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
155 " expected submatch 2 (optional)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
156 " etc.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
157 " 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
158 let tl = []
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
159
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
160 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
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 call add(tl, [2, 'c*', 'abdef', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
169 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
170 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
171
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
172 " operator \|
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
173 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
174
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
175 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
176 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
177 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
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{1}', 'ab', 'a'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
180
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
181 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
182 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
183 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
184 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
185 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
186 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
187
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
188 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
189 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
190 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
191
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}', 'ab', 'ab', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
193 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
194 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
195
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){0,2}', 'acb', "", ""])
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){0,2}', 'ab', 'ab', '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){1,2}', 'ab', 'ab', '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){1,2}', 'ababc', 'abab', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
200 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
201 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
202
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}', 'abab', 'abab', 'ab'])
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}', 'cdababe', '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}', 'abac'])
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}', 'abacabab', 'abab', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
207 call add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
208 call add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
209
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{1}){1}', 'a', 'a', 'a'])
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}', 'aa', '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{2}){1}', 'aaac', 'aa', 'aa'])
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{2}){1}', 'daaac', 'aa', 'aa'])
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{1}){2}', 'daaac', 'aa', 'a'])
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{1}){2}', 'aaa', 'aa', 'a'])
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})+', 'adaac', '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{2})+', 'aa', 'aa', 'aa'])
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{2}){1}', 'aa', 'aa', 'aa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
219 call add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
220 call add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
221 call add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
222 call add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
223
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
224 call add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
225 call add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
226
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,2}){2}', 'daaac', 'aaa', 'a'])
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}){2}', 'daaaac', 'aaaa', 'a'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
229 call add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
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{1,3}){3}', 'daac'])
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{1,2}){2}', 'dac'])
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+)+', 'daac', 'aa', 'aa'])
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+)+', 'aaa', 'aaa', 'aaa'])
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+){1,2}', 'aaa', '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+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
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{3})+', 'daaaac', 'aaa', 'aaa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
237 call add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
238 call add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
239 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
240 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
241
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
242 call add(tl, [2, 'a*', 'cc', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
243 call add(tl, [2, '\v(a*)+', 'cc', ''])
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)+)+', 'ab', 'ab', 'ab', '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(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
246 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
247 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
248 call add(tl, [2, '\v(a*)+', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
249 call add(tl, [2, '\v((a*)+)+', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
250 call add(tl, [2, '\v((ab)*)+', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
251 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
252 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
253
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
254 call add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
255 call add(tl, [2, '\v(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
256 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
257 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
258 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
259 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
260 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
261 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
262 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
263 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
264 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
265 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
266 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
267 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
268
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
269 " submatches
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
270 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
271 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
272 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
273 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
274 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
275
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
276 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
277 call add(tl, [2, 'x', 'abcdef'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
278
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 " Simple tests
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
281 "
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
282
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
283 " Search single groups
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
284 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
285 call add(tl, [2, 'ab', 'baced'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
286 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
287
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
288 " Search multi-modifiers
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
289 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
290 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
291 " empty match is good
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
292 call add(tl, [2, 'x*', 'abcdoij', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
293 " no match here
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
294 call add(tl, [2, 'x\+', 'abcdoin'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
295 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
296 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
297 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
298 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
299 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
300 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
301 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
302 " empty match is good
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
303 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
304 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
305
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,0}', 'abcdfdoij', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
307 " same thing as 'a?'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
308 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
309 " same thing as 'a\{0,1}'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
310 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
311 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
312 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
313 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
314 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
315 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
316 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
317 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
318 " same thing as 'a*'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
319 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
320 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
321 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
322 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
323 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
324 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
325 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
326 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
327 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
328 " 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
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 call add(tl, [2, '^*\{4,}$', '****', '****'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
331 call add(tl, [2, '^*\{4,}$', '*****', '*****'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
332 " same thing as 'a*'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
333 call add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
334 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
335
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,0}', 'abcdfdoij', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
337 " anti-greedy version of 'a?'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
338 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
339 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
340 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
341 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
342 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
343 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
344 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
345 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
346 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
347 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
348 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
349 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
350 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
351 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
352 " anti-greedy version of 'a*'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
353 call add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
354 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
355
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
356 " Test groups of characters and submatches
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
357 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
358 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
359 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
360 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
361 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
362 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
363 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
364 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
365 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
366 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
367 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
368 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
369
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
370 " Test greedy-ness and lazy-ness
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}','aaaaaaaaaaaaa', 'aa'])
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, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
374 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
375 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
376 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
377 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
378 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
379 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
380 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
381 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
382 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
383
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
384 " Test Character classes
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
385 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
386
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
387 " Test collections and character range []
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
388 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
389 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
390 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
391 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
392 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
393 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
394 call add(tl, [2, '[^abc]\+','abcabcabc'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
395 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
396 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
397 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
398 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
399 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
400 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
401 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
402 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
403 call add(tl, [2, '[-a]', '-', '-'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
404 call add(tl, [2, '[a-]', '-', '-'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
405 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
406 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
407 " filename regexp
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
408 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
409 " special chars
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
410 call add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
411 " collation elem
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
412 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
413 " middle of regexp
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
414 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
415 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
416 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
417 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
418 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
419 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
420 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
421 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
422
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
423 " 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
424 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
425 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
426 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
427 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
428 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
429 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
430 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
431 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
432
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
433 " Test recognition of character classes
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
434 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
435 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
436 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
437 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
438 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
439 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
440 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
441 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
442 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
443 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
444 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
445 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
446 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
447 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
448 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
449 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
450 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
451 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
452 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
453 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
454 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
455 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
456 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
457
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
458 " Tests for \z features
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
459 " match ends at \ze
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
460 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
461 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
462 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
463 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
464 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
465 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
466 " match starts at \zs
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
467 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
468 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
469 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
470 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
471 call add(tl, [2, '\>\zs.', 'aword. ', '.'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
472 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
473
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
474 " Tests for \@= and \& features
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
475 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
476 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
477 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
478 " 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
479 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
480 " will never match
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
481 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
482 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
483 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
484 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
485 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
486 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
487 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
488 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
489 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
490 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
491 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
492 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
493 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
494 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
495 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
496 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
497 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
498 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
499 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
500 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
501 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
502
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
503 " Combining different tests and features
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
504 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
505 call add(tl, [2, '', 'abcd', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
506 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
507 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
508 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
509 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
510
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
511 " \%u and friends
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
512 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
513 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
514 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
515 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
516 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
517 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
518
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
519 "" \%[abc]
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]', 'fobar'])
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]', 'foobar', 'foobar'])
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]', 'fooxx', 'foo'])
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]', 'foobxx', 'foob'])
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]', 'foobaxx', 'fooba'])
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]', 'foobarxx', 'foobar'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
526 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
527 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
528 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
529 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
530 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
531 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
532 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
533 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
534
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
535 " Alternatives, must use first longest match
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 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
538 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
539
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
540 " Back references
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
541 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
542 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
543 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
544 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
545 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
546 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
547 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
548 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
549 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
550 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
551 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
552
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
553 " Look-behind with limit
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
554 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
555 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
556 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
557 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
558 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
559 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
560 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
561
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
562 " 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
563 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
564 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
565 call add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
566 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
567 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
568
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
569 " complicated look-behind match
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
570 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
571 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
572
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
573 "" \@>
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
574 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
575 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
576 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
577 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
578 " 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
579 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
580
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
581 " "\_" prepended negated collection matches EOL
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
582 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
583 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
584
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
585 " Requiring lots of states.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
586 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
587
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
588 " Skip adding state twice
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
589 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
590
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
591 " Test \%V atom
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
592 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
593
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
594 " Run the tests
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
595 for t in tl
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
596 let re = t[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
597 let pat = t[1]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
598 let text = t[2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
599 let matchidx = 3
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
600 for engine in [0, 1, 2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
601 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
602 continue
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
603 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
604 let &regexpengine = engine
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
605 try
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
606 let l = matchlist(text, pat)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
607 catch
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
608 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
609 \ . '\", text: \"' . text . '\", caused an exception: \"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
610 \ . v:exception . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
611 endtry
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
612 " check the match itself
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
613 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
614 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
615 \ . '\", text: \"' . text . '\", did not match, expected: \"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
616 \ . t[matchidx] . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
617 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
618 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
619 \ . '\", text: \"' . text . '\", match: \"' . l[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
620 \ . '\", expected no match')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
621 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
622 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
623 \ . '\", text: \"' . text . '\", match: \"' . l[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
624 \ . '\", expected: \"' . t[matchidx] . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
625 else
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
626 " Test passed
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
627 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
628
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
629 " check all the nine submatches
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
630 if len(l) > 0
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
631 for i in range(1, 9)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
632 if len(t) <= matchidx + i
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
633 let e = ''
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
634 else
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
635 let e = t[matchidx + i]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
636 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
637 if l[i] != e
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
638 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
639 \ . '\", text: \"' . text . '\", submatch ' . i . ': \"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
640 \ . l[i] . '\", expected: \"' . e . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
641 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
642 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
643 unlet i
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
644 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
645 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
646 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
647
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
648 unlet t tl e l
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
649 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
650
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
651 " 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
652 func Test_regexp_multiline_pat()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
653 let tl = []
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
654
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
655 " back references
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
656 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
657 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
658
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
659 " line breaks
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
660 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
661
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
662 " 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
663 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
664
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
665 " 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
666 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
667
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
668 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
669
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
670 " Run the multi-line tests
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
671 for t in tl
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
672 let re = t[0]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
673 let pat = t[1]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
674 let before = t[2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
675 let after = t[3]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
676 for engine in [0, 1, 2]
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
677 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
678 continue
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
679 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
680 let &regexpengine = engine
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
681 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
682 call setline(1, before)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
683 exe '%s/' . pat . '/XX/'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
684 let result = getline(1, '$')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
685 q!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
686 if result != after
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
687 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
688 \ . string(before) . '\", expected: \"' . string(after)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
689 \ . '\", got: \"' . string(result) . '\"')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
690 else
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
691 " Test passed
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
692 endif
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
693 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
694 endfor
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
695 unlet t tl
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
696 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
697
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
698 " 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
699 " matchstr() with \ze in between.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
700 func Test_matchstr_with_ze()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
701 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
702 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
703 \ '<T="">Ac 7</Title>'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
704 call cursor(1, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
705 set re=0
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
706
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
707 .+1,.+2s/""/\='"' . matchstr(getline("."), '\d\+\ze<') . '"'
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
708 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
709 \ '<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
710
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
711 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
712 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
713
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
714 " 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
715 func Test_lookbehind_across_line()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
716 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
717 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
718 \ 'xxxstart2', 'asdfasd<yy', 'xxstart3'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
719 call cursor(1, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
720 call search('\(<\_[xy]\+\)\@3<=start')
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
721 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
722 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
723 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
724
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
725 " Check matching Visual area
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
726 func Test_matching_visual_area()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
727 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
728 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
729 \ 'oooxofor foroxooo', 'oooxofor foroxooo'])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
730 call cursor(1, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
731 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
732 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
733 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
734 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
735 \ 'oooxOfOr fOrOxooo', 'oooxOfOr fOrOxooo', ''], getline(1, '$'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
736 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
737 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
738
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
739 " Check matching marks
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
740 func Test_matching_marks()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
741 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
742 call append(0, ['', '', '', 'Marks:', 'asdfSasdfsadfEasdf', 'asdfSas',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
743 \ 'dfsadfEasdf', '', '', '', '', ''])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
744 call cursor(4, 1)
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
745 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
746 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
747 call assert_equal(['', '', '', 'Marks:', 'asdfhereasdf', 'asdfagainasdf',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
748 \ '', '', '', '', '', ''], getline(1, '$'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
749 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
750 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
751
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
752 " Check patterns matching cursor position.
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
753 func s:curpos_test()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
754 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
755 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
756 \ "\t\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
757 \ ' 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
758 call setpos('.', [0, 1, 0, 0])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
759 s/\%>3c.//g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
760 call setpos('.', [0, 2, 4, 0])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
761 s/\%#.*$//g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
762 call setpos('.', [0, 3, 0, 0])
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
763 s/\%<3c./_/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
764 %s/\%4l\%>5c./_/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
765 %s/\%6l\%>25v./_/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
766 %s/\%>6l\%3c./!/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
767 %s/\%>7l\%12c./?/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
768 %s/\%>7l\%<9l\%>5v\%<8v./#/g
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
769 $s/\%(|\u.*\)\@<=[^|\t]\+$//ge
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
770 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
771 \ ' f__', 'ab!babababababfoo',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
772 \ 'ba!ab##abab?bafoo', '**!*****_',
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
773 \ ' ! 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
774 \ getline(1, '$'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
775 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
776 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
777
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
778 func Test_matching_curpos()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
779 set re=0
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=1
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=2
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
784 call s:curpos_test()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
785 set re&
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
786 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
787
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
788 " 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
789 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
790 new
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
791 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
792 /\%^
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, 1, 1, 0], getpos('.'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
796 exe "normal 50%/\\%$\<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, 8, 0], getpos('.'))
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
798 exe "normal 6gg/..\\%$\<CR>"
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
799 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
800 bwipe!
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
801 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
802
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
803 " Check for detecting error
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
804 func Test_regexp_error()
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
805 set regexpengine=2
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
806 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
807 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
808 set re&
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
809 endfunc
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
810
ad9e9e92ad55 patch 8.2.0010: test64 is old style
Bram Moolenaar <Bram@vim.org>
parents: 15904
diff changeset
811 " vim: shiftwidth=2 sts=2 expandtab