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 char_u **matches = NULL;
static int flags; 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 #ifdef EXITFREE
if (type == DT_FREE) if (type == DT_FREE)
{ {
@@ -313,6 +302,17 @@ do_tag(
} }
#endif #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) if (type == DT_HELP)
{ {
type = DT_TAG; type = DT_TAG;

View File

@@ -1,6 +1,7 @@
" Test 'winfixbuf' " Test 'winfixbuf'
source check.vim source check.vim
source shared.vim
" Find the number of open windows in the current tab " Find the number of open windows in the current tab
func s:get_windows_count() func s:get_windows_count()
@@ -3427,4 +3428,15 @@ func Test_bufdo_cnext_splitwin_fails()
set winminheight&vim winheight&vim set winminheight&vim winheight&vim
endfunc 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 " vim: shiftwidth=2 sts=2 expandtab

View File

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