annotate src/testdir/test_regexp_latin.vim @ 18478:94223687df0e

Added tag v8.1.2233 for changeset e93cab5d0f0f27fad7882f1f412927df055b090d
author Bram Moolenaar <Bram@vim.org>
date Tue, 29 Oct 2019 04:30:05 +0100
parents fec4416adb80
children ad9e9e92ad55
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8825
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for regexp in latin1 encoding
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 set encoding=latin1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 scriptencoding latin1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 func s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 let str = "AÀÁÂÃÄÅ B C D EÈÉÊË F G H IÌÍÎÏ J K L M NÑ OÒÓÔÕÖØ P Q R S T UÙÚÛÜ V W X YÝ Z aàáâãäå b c d eèéêë f g h iìíîï j k l m nñ oòóôõöø p q r s t uùúûü v w x yýÿ z"
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 let groups = split(str)
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 for group1 in groups
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 for c in split(group1, '\zs')
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 " next statement confirms that equivalence class matches every
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 " character in group
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 call assert_match('^[[=' . c . '=]]*$', group1)
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 for group2 in groups
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 if group2 != group1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 " next statement converts that equivalence class doesn't match
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 " a character in any other group
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 call assert_equal(-1, match(group2, '[[=' . c . '=]]'))
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 endif
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 endfor
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 endfunc
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 func Test_equivalence_re1()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 set re=1
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 call s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 endfunc
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 func Test_equivalence_re2()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 set re=2
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 call s:equivalence_test()
318eaa6fa973 commit https://github.com/vim/vim/commit/22e421549d54147d003f6444de007cb1d73f1d27
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 endfunc
9890
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
33
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
34 func Test_recursive_substitute()
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
35 new
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
36 s/^/\=execute("s#^##gn")
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
37 " check we are now not in the sandbox
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
38 call setwinvar(1, 'myvar', 1)
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
39 bwipe!
064effd222a3 commit https://github.com/vim/vim/commit/f5a39447a8ebe162ee62caa2ee502cd0e65eecaa
Christian Brabandt <cb@256bit.org>
parents: 8825
diff changeset
40 endfunc
10168
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
41
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
42 func Test_nested_backrefs()
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
43 " Check example in change.txt.
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
44 new
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
45 for re in range(0, 2)
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
46 exe 'set re=' . re
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
47 call setline(1, 'aa ab x')
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
48 1s/\(\(a[a-d] \)*\)\(x\)/-\1- -\2- -\3-/
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
49 call assert_equal('-aa ab - -ab - -x-', getline(1))
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
50
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
51 call assert_equal('-aa ab - -ab - -x-', substitute('aa ab x', '\(\(a[a-d] \)*\)\(x\)', '-\1- -\2- -\3-', ''))
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
52 endfor
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
53 bwipe!
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
54 set re=0
3c37899baa8d commit https://github.com/vim/vim/commit/d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d
Christian Brabandt <cb@256bit.org>
parents: 9909
diff changeset
55 endfunc
10170
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
56
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
57 func Test_eow_with_optional()
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
58 let expected = ['abc def', 'abc', 'def', '', '', '', '', '', '', '']
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
59 for re in range(0, 2)
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
60 exe 'set re=' . re
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
61 let actual = matchlist('abc def', '\(abc\>\)\?\s*\(def\)')
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
62 call assert_equal(expected, actual)
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
63 endfor
4acacf4081ce commit https://github.com/vim/vim/commit/16b3578f355282846f2600ce77fb344950f0b9ce
Christian Brabandt <cb@256bit.org>
parents: 10168
diff changeset
64 endfunc
11525
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
65
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
66 func Test_backref()
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
67 new
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
68 call setline(1, ['one', 'two', 'three', 'four', 'five'])
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
69 call assert_equal(3, search('\%#=1\(e\)\1'))
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
70 call assert_equal(3, search('\%#=2\(e\)\1'))
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
71 call assert_fails('call search("\\%#=1\\(e\\1\\)")', 'E65:')
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
72 call assert_fails('call search("\\%#=2\\(e\\1\\)")', 'E65:')
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
73 bwipe!
14b6b79d685b patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents: 10170
diff changeset
74 endfunc
15486
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
75
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
76 func Test_multi_failure()
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
77 set re=1
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
78 call assert_fails('/a**', 'E61:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
79 call assert_fails('/a*\+', 'E62:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
80 call assert_fails('/a\{a}', 'E554:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
81 set re=2
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
82 call assert_fails('/a**', 'E871:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
83 call assert_fails('/a*\+', 'E871:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
84 call assert_fails('/a\{a}', 'E870:')
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
85 set re=0
b143545e3354 patch 8.1.0751: some regexp errors are not tested
Bram Moolenaar <Bram@vim.org>
parents: 11525
diff changeset
86 endfunc
15796
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
87
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
88 func Test_recursive_addstate()
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
89 " This will call addstate() recursively until it runs into the limit.
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
90 let lnum = search('\v((){328}){389}')
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
91 call assert_equal(0, lnum)
481452f6687c patch 8.1.0905: complicated regexp causes a crash
Bram Moolenaar <Bram@vim.org>
parents: 15486
diff changeset
92 endfunc
15806
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
93
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
94 func Test_out_of_memory()
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
95 new
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
96 s/^/,n
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
97 " This will be slow...
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
98 call assert_fails('call search("\\v((n||<)+);")', 'E363:')
6a4e9d9f1d66 patch 8.1.0910: crash with tricky search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15796
diff changeset
99 endfunc
15854
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
100
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
101 func Test_get_equi_class()
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
102 new
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
103 " Incomplete equivalence class caused invalid memory access
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
104 s/^/[[=
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
105 call assert_equal(1, search(getline(1)))
15860
9cd9bf2897de patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15856
diff changeset
106 s/.*/[[.
9cd9bf2897de patch 8.1.0937: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15856
diff changeset
107 call assert_equal(1, search(getline(1)))
15854
4ac1c185b0b8 patch 8.1.0934: invalid memory access in search pattern
Bram Moolenaar <Bram@vim.org>
parents: 15806
diff changeset
108 endfunc
15856
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
109
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
110 func Test_rex_init()
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
111 set noincsearch
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
112 set re=1
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
113 new
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
114 setlocal iskeyword=a-z
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
115 call setline(1, ['abc', 'ABC'])
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
116 call assert_equal(1, search('[[:keyword:]]'))
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
117 new
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
118 setlocal iskeyword=A-Z
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
119 call setline(1, ['abc', 'ABC'])
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
120 call assert_equal(2, search('[[:keyword:]]'))
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
121 bwipe!
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
122 bwipe!
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
123 set re=0
e44b7caaf373 patch 8.1.0935: old regexp engine may use invalid buffer
Bram Moolenaar <Bram@vim.org>
parents: 15854
diff changeset
124 endfunc
15876
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
125
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
126 func Test_range_with_newline()
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
127 new
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
128 call setline(1, "a")
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
129 call assert_equal(0, search("[ -*\\n- ]"))
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
130 call assert_equal(0, search("[ -*\\t-\\n]"))
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
131 bwipe!
0c49755f460e patch 8.1.0945: internal error when using pattern with NL in the range
Bram Moolenaar <Bram@vim.org>
parents: 15860
diff changeset
132 endfunc
15904
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
133
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
134 func Test_pattern_compile_speed()
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
135 if !exists('+spellcapcheck') || !has('reltime')
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
136 return
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
137 endif
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
138 let start = reltime()
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
139 " this used to be very slow, not it should be about a second
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
140 set spc=\\v(((((Nxxxxxxx&&xxxx){179})+)+)+){179}
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
141 call assert_inrange(0.01, 10.0, reltimefloat(reltime(start)))
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
142 set spc=
fec4416adb80 patch 8.1.0958: compiling weird regexp pattern is very slow
Bram Moolenaar <Bram@vim.org>
parents: 15876
diff changeset
143 endfunc