1" 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 34 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 64