blob: c29c2ec1f3691a7812fa691e66c5a02bfb559937 [file] [log] [blame]
Bram Moolenaard3c907b2016-08-17 21:32:09 +02001" Test the :source! command
2if !has('multi_byte')
3 finish
4endif
5
6func Test_source_utf8()
7 " check that sourcing a script with 0x80 as second byte works
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
Bram Moolenaar15993ce2017-10-26 20:21:44 +020034
35" Test for sourcing a file with CTRL-V's at the end of the line
36func Test_source_ctrl_v()
37 call writefile(['map __1 afirst',
38 \ 'map __2 asecond',
39 \ 'map __3 athird',
40 \ 'map __4 afourth',
41 \ 'map __5 afifth',
42 \ "map __1 asd\<C-V>",
43 \ "map __2 asd\<C-V>\<C-V>",
44 \ "map __3 asd\<C-V>\<C-V>",
45 \ "map __4 asd\<C-V>\<C-V>\<C-V>",
46 \ "map __5 asd\<C-V>\<C-V>\<C-V>",
47 \ ], 'Xtestfile')
48 source Xtestfile
49 enew!
50 exe "normal __1\<Esc>\<Esc>__2\<Esc>__3\<Esc>\<Esc>__4\<Esc>__5\<Esc>"
51 exe "%s/\<C-J>/0/g"
52 call assert_equal(['sd',
53 \ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
54 \ getline(1, 2))
55
56 enew!
57 call delete('Xtestfile')
58 unmap __1
59 unmap __2
60 unmap __3
61 unmap __4
62 unmap __5
63endfunc