1
0
forked from aniani/vim
Files
vim/src/testdir/test_statusline.vim
Bram Moolenaar a742e084b6 patch 7.4.1711
Problem:    When using try/catch in 'statusline' it is still considered an
            error and the status line will be disabled.
Solution:   Check did_emsg instead of called_emsg. (haya14busa, closes #729)
2016-04-05 21:10:38 +02:00

40 lines
959 B
VimL

function! StatuslineWithCaughtError()
let s:func_in_statusline_called = 1
try
call eval('unknown expression')
catch
endtry
return ''
endfunction
function! StatuslineWithError()
let s:func_in_statusline_called = 1
call eval('unknown expression')
return ''
endfunction
function! Test_caught_error_in_statusline()
let s:func_in_statusline_called = 0
set laststatus=2
let statusline = '%{StatuslineWithCaughtError()}'
let &statusline = statusline
redrawstatus
call assert_true(s:func_in_statusline_called)
call assert_equal(statusline, &statusline)
set statusline=
endfunction
function! Test_statusline_will_be_disabled_with_error()
let s:func_in_statusline_called = 0
set laststatus=2
let statusline = '%{StatuslineWithError()}'
try
let &statusline = statusline
redrawstatus
catch
endtry
call assert_true(s:func_in_statusline_called)
call assert_equal('', &statusline)
set statusline=
endfunction