1
0
forked from aniani/vim

patch 9.1.0216: Error on exit with EXITFREE and 'winfixbuf'

Problem:  Error on exit with EXITFREE and 'winfixbuf'.
Solution: Handle DT_FREE before checking for 'winfixbuf'.
          (zeertzjq)

closes: #14314

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2024-03-28 10:11:57 +01:00
committed by Christian Brabandt
parent 5a2e3ec9ac
commit 620e85265c
3 changed files with 25 additions and 11 deletions

View File

@@ -289,17 +289,6 @@ do_tag(
static char_u **matches = NULL;
static int flags;
if (postponed_split == 0 && !check_can_set_curbuf_forceit(forceit))
return FALSE;
#ifdef FEAT_EVAL
if (tfu_in_use)
{
emsg(_(e_cannot_modify_tag_stack_within_tagfunc));
return FALSE;
}
#endif
#ifdef EXITFREE
if (type == DT_FREE)
{
@@ -313,6 +302,17 @@ do_tag(
}
#endif
#ifdef FEAT_EVAL
if (tfu_in_use)
{
emsg(_(e_cannot_modify_tag_stack_within_tagfunc));
return FALSE;
}
#endif
if (postponed_split == 0 && !check_can_set_curbuf_forceit(forceit))
return FALSE;
if (type == DT_HELP)
{
type = DT_TAG;

View File

@@ -1,6 +1,7 @@
" Test 'winfixbuf'
source check.vim
source shared.vim
" Find the number of open windows in the current tab
func s:get_windows_count()
@@ -3427,4 +3428,15 @@ func Test_bufdo_cnext_splitwin_fails()
set winminheight&vim winheight&vim
endfunc
" Test that exiting with 'winfixbuf' and EXITFREE doesn't cause an error.
func Test_exitfree_no_error()
let lines =<< trim END
set winfixbuf
qall!
END
call writefile(lines, 'Xwfb_exitfree', 'D')
call assert_notmatch('E1513:',
\ system(GetVimCommandClean() .. ' -X -S Xwfb_exitfree'))
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
216,
/**/
215,
/**/