blob: 99cb09c50e338cc74f88d9e18cd1f61e4d01873e [file] [log] [blame]
Bram Moolenaard3c907b2016-08-17 21:32:09 +02001" Test the :source! command
Bram Moolenaar9134f1e2019-11-29 20:26:13 +01002source check.vim
Bram Moolenaard3c907b2016-08-17 21:32:09 +02003
4func Test_source_utf8()
5 " check that sourcing a script with 0x80 as second byte works
Bram Moolenaar9134f1e2019-11-29 20:26:13 +01006 " does not work correctly on BSD
7 CheckNotBSD
Bram Moolenaard3c907b2016-08-17 21:32:09 +02008 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()
Bram Moolenaar9134f1e2019-11-29 20:26:13 +010037 CheckNotBSD
Bram Moolenaar15993ce2017-10-26 20:21:44 +020038 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