1" Test the :source! command
2source check.vim
3
4func Test_source_utf8()
5  " check that sourcing a script with 0x80 as second byte works
6  " does not work correctly on BSD
7  CheckNotBSD
8  new
9  call setline(1, [':%s/àx/--à1234--/g', ':%s/Àx/--À1234--/g'])
10  write! Xscript
11  bwipe!
12  new
13  call setline(1, [' àx ', ' Àx '])
14  source! Xscript | echo
15  call assert_equal(' --à1234-- ', getline(1))
16  call assert_equal(' --À1234-- ', getline(2))
17  bwipe!
18  call delete('Xscript')
19endfunc
20
21func Test_source_latin()
22  " check that sourcing a latin1 script with a 0xc0 byte works
23  new
24  call setline(1, ["call feedkeys('r')", "call feedkeys('\xc0', 'xt')"])
25  write! Xscript
26  bwipe!
27  new
28  call setline(1, ['xxx'])
29  source Xscript
30  call assert_equal("\u00c0xx", getline(1))
31  bwipe!
32  call delete('Xscript')
33endfunc
34
35" Test for sourcing a file with CTRL-V's at the end of the line
36func Test_source_ctrl_v()
37    CheckNotBSD
38    call writefile(['map __1 afirst',
39		\ 'map __2 asecond',
40		\ 'map __3 athird',
41		\ 'map __4 afourth',
42		\ 'map __5 afifth',
43		\ "map __1 asd\<C-V>",
44		\ "map __2 asd\<C-V>\<C-V>",
45		\ "map __3 asd\<C-V>\<C-V>",
46		\ "map __4 asd\<C-V>\<C-V>\<C-V>",
47		\ "map __5 asd\<C-V>\<C-V>\<C-V>",
48		\ ], 'Xtestfile')
49  source Xtestfile
50  enew!
51  exe "normal __1\<Esc>\<Esc>__2\<Esc>__3\<Esc>\<Esc>__4\<Esc>__5\<Esc>"
52  exe "%s/\<C-J>/0/g"
53  call assert_equal(['sd',
54	      \ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
55	      \ getline(1, 2))
56
57  enew!
58  call delete('Xtestfile')
59  unmap __1
60  unmap __2
61  unmap __3
62  unmap __4
63  unmap __5
64endfunc
65