summaryrefslogtreecommitdiff
path: root/src/testdir/test_source_utf8.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-17 21:32:09 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-17 21:32:09 +0200
commitd3c907b5d2b352482b580a0cf687cbbea4c19ea1 (patch)
tree4ef356217c0b95e6f6ee5b5d3bb756c103ef8b82 /src/testdir/test_source_utf8.vim
parent6bff02eb530aa29aafa2cb5627399837be7a5dd5 (diff)
downloadvim-git-d3c907b5d2b352482b580a0cf687cbbea4c19ea1.tar.gz
patch 7.4.2223v7.4.2223
Problem: Buffer overflow when using latin1 character with feedkeys(). Solution: Check for an illegal character. Add a test.
Diffstat (limited to 'src/testdir/test_source_utf8.vim')
-rw-r--r--src/testdir/test_source_utf8.vim33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/testdir/test_source_utf8.vim b/src/testdir/test_source_utf8.vim
new file mode 100644
index 000000000..edb76fc43
--- /dev/null
+++ b/src/testdir/test_source_utf8.vim
@@ -0,0 +1,33 @@
+" Test the :source! command
+if !has('multi_byte')
+ finish
+endif
+
+func Test_source_utf8()
+ " check that sourcing a script with 0x80 as second byte works
+ new
+ call setline(1, [':%s/àx/--à1234--/g', ':%s/Àx/--À1234--/g'])
+ write! Xscript
+ bwipe!
+ new
+ call setline(1, [' àx ', ' Àx '])
+ source! Xscript | echo
+ call assert_equal(' --à1234-- ', getline(1))
+ call assert_equal(' --À1234-- ', getline(2))
+ bwipe!
+ call delete('Xscript')
+endfunc
+
+func Test_source_latin()
+ " check that sourcing a latin1 script with a 0xc0 byte works
+ new
+ call setline(1, ["call feedkeys('r')", "call feedkeys('\xc0', 'xt')"])
+ write! Xscript
+ bwipe!
+ new
+ call setline(1, ['xxx'])
+ source Xscript
+ call assert_equal("\u00c0xx", getline(1))
+ bwipe!
+ call delete('Xscript')
+endfunc