1*ad4d8a19SBram Moolenaar" Tests for searchpos()
2*ad4d8a19SBram Moolenaar
3*ad4d8a19SBram Moolenaarfunc Test_searchpos()
4*ad4d8a19SBram Moolenaar  new one
5*ad4d8a19SBram Moolenaar  0put ='1a3'
6*ad4d8a19SBram Moolenaar  1put ='123xyz'
7*ad4d8a19SBram Moolenaar  call cursor(1, 1)
8*ad4d8a19SBram Moolenaar  call assert_equal([1, 1, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
9*ad4d8a19SBram Moolenaar  call cursor(1, 2)
10*ad4d8a19SBram Moolenaar  call assert_equal([2, 1, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
11*ad4d8a19SBram Moolenaar  set cpo-=c
12*ad4d8a19SBram Moolenaar  call cursor(1, 2)
13*ad4d8a19SBram Moolenaar  call assert_equal([1, 2, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
14*ad4d8a19SBram Moolenaar  call cursor(1, 3)
15*ad4d8a19SBram Moolenaar  call assert_equal([1, 3, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW'))
16*ad4d8a19SBram Moolenaar
17*ad4d8a19SBram Moolenaar  " Now with \zs, first match is in column 0, "a" is matched.
18*ad4d8a19SBram Moolenaar  call cursor(1. 3)
19*ad4d8a19SBram Moolenaar  call assert_equal([2, 4, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}\zsxyz', 'pcW'))
20*ad4d8a19SBram Moolenaar  " With z flag start at cursor column, don't see the "a".
21*ad4d8a19SBram Moolenaar  call cursor(1. 3)
22*ad4d8a19SBram Moolenaar  call assert_equal([2, 4, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}\zsxyz', 'pcWz'))
23*ad4d8a19SBram Moolenaar
24*ad4d8a19SBram Moolenaar  set cpo+=c
25*ad4d8a19SBram Moolenaar  " close the window
26*ad4d8a19SBram Moolenaar  q!
27*ad4d8a19SBram Moolenaar
28*ad4d8a19SBram Moolenaarendfunc
29