Mercurial > vim
view src/testdir/test_expand_func.vim @ 19121:a51fee786930 v8.2.0120
patch 8.2.0120: virtcol() does not check arguments to be valid
Commit: https://github.com/vim/vim/commit/b3d33d8570bc49a7f90990572d7f9630a1bfae02
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 15 20:36:55 2020 +0100
patch 8.2.0120: virtcol() does not check arguments to be valid
Problem: virtcol() does not check arguments to be valid, which may lead to
a crash.
Solution: Check the column to be valid. Do not decrement MAXCOL.
(closes #5480)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 15 Jan 2020 20:45:04 +0100 |
parents | 73ddc462979d |
children | 6d3c683466f4 |
line wrap: on
line source
" Tests for expand() let s:sfile = expand('<sfile>') let s:slnum = str2nr(expand('<slnum>')) let s:sflnum = str2nr(expand('<sflnum>')) func s:expand_sfile() return expand('<sfile>') endfunc func s:expand_slnum() return str2nr(expand('<slnum>')) endfunc func s:expand_sflnum() return str2nr(expand('<sflnum>')) endfunc func Test_expand_sfile() call assert_match('test_expand_func\.vim$', s:sfile) call assert_match('^function .*\.\.Test_expand_sfile$', expand('<sfile>')) " Call in script-local function call assert_match('^function .*\.\.Test_expand_sfile\[5\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile()) " Call in command command Sfile echo expand('<sfile>') call assert_match('^function .*\.\.Test_expand_sfile$', trim(execute('Sfile'))) delcommand Sfile endfunc func Test_expand_slnum() call assert_equal(4, s:slnum) call assert_equal(2, str2nr(expand('<slnum>'))) " Line-continuation call assert_equal( \ 5, \ str2nr(expand('<slnum>'))) " Call in script-local function call assert_equal(1, s:expand_slnum()) " Call in command command Slnum echo expand('<slnum>') call assert_equal(14, str2nr(trim(execute('Slnum')))) delcommand Slnum endfunc func Test_expand_sflnum() call assert_equal(5, s:sflnum) call assert_equal(52, str2nr(expand('<sflnum>'))) " Line-continuation call assert_equal( \ 55, \ str2nr(expand('<sflnum>'))) " Call in script-local function call assert_equal(16, s:expand_sflnum()) " Call in command command Flnum echo expand('<sflnum>') call assert_equal(64, str2nr(trim(execute('Flnum')))) delcommand Flnum endfunc func Test_expand() new call assert_equal("", expand('%:S')) call assert_equal('3', '<slnum>'->expand()) call assert_equal(['4'], expand('<slnum>', v:false, v:true)) " Don't add any line above this, otherwise <slnum> will change. quit endfunc