1d3c907b5SBram Moolenaar" Test the :source! command
2*6d91bcb4SBram Moolenaar
39134f1ecSBram Moolenaarsource check.vim
4d3c907b5SBram Moolenaar
5d3c907b5SBram Moolenaarfunc Test_source_utf8()
6d3c907b5SBram Moolenaar  " check that sourcing a script with 0x80 as second byte works
7d3c907b5SBram Moolenaar  new
8d3c907b5SBram Moolenaar  call setline(1, [':%s/àx/--à1234--/g', ':%s/Àx/--À1234--/g'])
9d3c907b5SBram Moolenaar  write! Xscript
10d3c907b5SBram Moolenaar  bwipe!
11d3c907b5SBram Moolenaar  new
12d3c907b5SBram Moolenaar  call setline(1, [' àx ', ' Àx '])
13d3c907b5SBram Moolenaar  source! Xscript | echo
14d3c907b5SBram Moolenaar  call assert_equal(' --à1234-- ', getline(1))
15d3c907b5SBram Moolenaar  call assert_equal(' --À1234-- ', getline(2))
16d3c907b5SBram Moolenaar  bwipe!
17d3c907b5SBram Moolenaar  call delete('Xscript')
18d3c907b5SBram Moolenaarendfunc
19d3c907b5SBram Moolenaar
20d3c907b5SBram Moolenaarfunc Test_source_latin()
21d3c907b5SBram Moolenaar  " check that sourcing a latin1 script with a 0xc0 byte works
22d3c907b5SBram Moolenaar  new
23d3c907b5SBram Moolenaar  call setline(1, ["call feedkeys('r')", "call feedkeys('\xc0', 'xt')"])
24d3c907b5SBram Moolenaar  write! Xscript
25d3c907b5SBram Moolenaar  bwipe!
26d3c907b5SBram Moolenaar  new
27d3c907b5SBram Moolenaar  call setline(1, ['xxx'])
28d3c907b5SBram Moolenaar  source Xscript
29d3c907b5SBram Moolenaar  call assert_equal("\u00c0xx", getline(1))
30d3c907b5SBram Moolenaar  bwipe!
31d3c907b5SBram Moolenaar  call delete('Xscript')
32d3c907b5SBram Moolenaarendfunc
3315993ce9SBram Moolenaar
3415993ce9SBram Moolenaar" Test for sourcing a file with CTRL-V's at the end of the line
3515993ce9SBram Moolenaarfunc Test_source_ctrl_v()
3615993ce9SBram Moolenaar  call writefile(['map __1 afirst',
3715993ce9SBram Moolenaar        \ 'map __2 asecond',
3815993ce9SBram Moolenaar        \ 'map __3 athird',
3915993ce9SBram Moolenaar        \ 'map __4 afourth',
4015993ce9SBram Moolenaar        \ 'map __5 afifth',
4115993ce9SBram Moolenaar        \ "map __1 asd\<C-V>",
4215993ce9SBram Moolenaar        \ "map __2 asd\<C-V>\<C-V>",
4315993ce9SBram Moolenaar        \ "map __3 asd\<C-V>\<C-V>",
4415993ce9SBram Moolenaar        \ "map __4 asd\<C-V>\<C-V>\<C-V>",
4515993ce9SBram Moolenaar        \ "map __5 asd\<C-V>\<C-V>\<C-V>",
4615993ce9SBram Moolenaar        \ ], 'Xtestfile')
4715993ce9SBram Moolenaar  source Xtestfile
4815993ce9SBram Moolenaar  enew!
4915993ce9SBram Moolenaar  exe "normal __1\<Esc>\<Esc>__2\<Esc>__3\<Esc>\<Esc>__4\<Esc>__5\<Esc>"
5015993ce9SBram Moolenaar  exe "%s/\<C-J>/0/g"
5115993ce9SBram Moolenaar  call assert_equal(['sd',
5215993ce9SBram Moolenaar        \ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
5315993ce9SBram Moolenaar        \ getline(1, 2))
5415993ce9SBram Moolenaar
5515993ce9SBram Moolenaar  enew!
5615993ce9SBram Moolenaar  call delete('Xtestfile')
5715993ce9SBram Moolenaar  unmap __1
5815993ce9SBram Moolenaar  unmap __2
5915993ce9SBram Moolenaar  unmap __3
6015993ce9SBram Moolenaar  unmap __4
6115993ce9SBram Moolenaar  unmap __5
6215993ce9SBram Moolenaarendfunc
63*6d91bcb4SBram Moolenaar
64*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
65