mirror of
https://github.com/neovim/neovim.git
synced 2026-08-27 01:21:48 +00:00
vim-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 vim/vim#729)
a742e084b6
This commit is contained in:
@@ -13,6 +13,7 @@ source test_menu.vim
|
||||
source test_options.vim
|
||||
source test_popup.vim
|
||||
source test_regexp_utf8.vim
|
||||
source test_statusline.vim
|
||||
source test_syn_attr.vim
|
||||
source test_tabpage.vim
|
||||
source test_unlet.vim
|
||||
|
||||
39
src/nvim/testdir/test_statusline.vim
Normal file
39
src/nvim/testdir/test_statusline.vim
Normal file
@@ -0,0 +1,39 @@
|
||||
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
|
||||
Reference in New Issue
Block a user