diff options
author | James McCoy <jamessan@jamessan.com> | 2016-12-01 09:07:33 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-01 09:07:33 -0500 |
commit | 85f9f9f46dfc53966621c87442eed3528fb92c26 (patch) | |
tree | 24f7a012dd28fd14e0ffaa476900b1f1a3f5d9d8 | |
parent | e1cdf04f2db49f987bc4108e5fa4e1dd45339b7b (diff) | |
parent | 68271a6d1993331b22242f87ecca6f60565c9517 (diff) | |
download | rneovim-85f9f9f46dfc53966621c87442eed3528fb92c26.tar.gz rneovim-85f9f9f46dfc53966621c87442eed3528fb92c26.tar.bz2 rneovim-85f9f9f46dfc53966621c87442eed3528fb92c26.zip |
Merge pull request #5674 from brcolow/vim-7.4.1723
vim-patch:7.4.1723
-rw-r--r-- | src/nvim/screen.c | 17 | ||||
-rw-r--r-- | src/nvim/testdir/test_alot.vim | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_tabline.vim | 43 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
4 files changed, 54 insertions, 9 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index a851cd5ed1..9075f94a20 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -6888,16 +6888,17 @@ static void draw_tabline(void) /* Use the 'tabline' option if it's set. */ if (*p_tal != NUL) { - int save_called_emsg = called_emsg; + int saved_did_emsg = did_emsg; - /* Check for an error. If there is one we would loop in redrawing the - * screen. Avoid that by making 'tabline' empty. */ - called_emsg = FALSE; - win_redr_custom(NULL, FALSE); - if (called_emsg) + // Check for an error. If there is one we would loop in redrawing the + // screen. Avoid that by making 'tabline' empty. + did_emsg = false; + win_redr_custom(NULL, false); + if (did_emsg) { set_string_option_direct((char_u *)"tabline", -1, - (char_u *)"", OPT_FREE, SID_ERROR); - called_emsg |= save_called_emsg; + (char_u *)"", OPT_FREE, SID_ERROR); + } + did_emsg |= saved_did_emsg; } else { FOR_ALL_TABS(tp) { ++tabcount; diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index d75430ed8d..d460134fb9 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -14,6 +14,7 @@ source test_popup.vim source test_regexp_utf8.vim source test_statusline.vim source test_syn_attr.vim +source test_tabline.vim source test_tabpage.vim source test_unlet.vim source test_matchadd_conceal_utf8.vim diff --git a/src/nvim/testdir/test_tabline.vim b/src/nvim/testdir/test_tabline.vim new file mode 100644 index 0000000000..6c7a02d650 --- /dev/null +++ b/src/nvim/testdir/test_tabline.vim @@ -0,0 +1,43 @@ +function! TablineWithCaughtError() + let s:func_in_tabline_called = 1 + try + call eval('unknown expression') + catch + endtry + return '' +endfunction + +function! TablineWithError() + let s:func_in_tabline_called = 1 + call eval('unknown expression') + return '' +endfunction + +function! Test_caught_error_in_tabline() + let showtabline_save = &showtabline + set showtabline=2 + let s:func_in_tabline_called = 0 + let tabline = '%{TablineWithCaughtError()}' + let &tabline = tabline + redraw! + call assert_true(s:func_in_tabline_called) + call assert_equal(tabline, &tabline) + set tabline= + let &showtabline = showtabline_save +endfunction + +function! Test_tabline_will_be_disabled_with_error() + let showtabline_save = &showtabline + set showtabline=2 + let s:func_in_tabline_called = 0 + let tabline = '%{TablineWithError()}' + try + let &tabline = tabline + redraw! + catch + endtry + call assert_true(s:func_in_tabline_called) + call assert_equal('', &tabline) + set tabline= + let &showtabline = showtabline_save +endfunction diff --git a/src/nvim/version.c b/src/nvim/version.c index e9bd1b7438..5b0c967ee2 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -721,7 +721,7 @@ static int included_patches[] = { // 1726 NA // 1725 NA // 1724 NA - // 1723, + 1723, // 1722 NA // 1721 NA // 1720, |