Mercurial > vim
comparison src/testdir/test_source_utf8.vim @ 9898:bff8a09016a5 v7.4.2223
commit https://github.com/vim/vim/commit/d3c907b5d2b352482b580a0cf687cbbea4c19ea1
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 17 21:32:09 2016 +0200
patch 7.4.2223
Problem: Buffer overflow when using latin1 character with feedkeys().
Solution: Check for an illegal character. Add a test.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 17 Aug 2016 21:45:07 +0200 |
parents | |
children | aa658b33f25a |
comparison
equal
deleted
inserted
replaced
9897:9d1354639a36 | 9898:bff8a09016a5 |
---|---|
1 " Test the :source! command | |
2 if !has('multi_byte') | |
3 finish | |
4 endif | |
5 | |
6 func 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') | |
19 endfunc | |
20 | |
21 func 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') | |
33 endfunc |