patch 9.1.0231: Filetype may be undetected when SwapExists sets ft in other buf
Problem: Filetype may be undetected when a SwapExists autocommand sets
filetype in another buffer.
Solution: Make filetype detection state buffer-specific. Also fix a
similar problem for 'modified' (zeertzjq).
closes: #14344
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
8603270293
commit
5bf6c2117f
@ -2258,7 +2258,7 @@ apply_autocmds_group(
|
||||
saveRedobuff(&save_redo);
|
||||
did_save_redobuff = TRUE;
|
||||
}
|
||||
did_filetype = keep_filetype;
|
||||
curbuf->b_did_filetype = curbuf->b_keep_filetype;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2270,7 +2270,7 @@ apply_autocmds_group(
|
||||
|
||||
// Remember that FileType was triggered. Used for did_filetype().
|
||||
if (event == EVENT_FILETYPE)
|
||||
did_filetype = TRUE;
|
||||
curbuf->b_did_filetype = TRUE;
|
||||
|
||||
tail = gettail(fname);
|
||||
|
||||
@ -2379,7 +2379,7 @@ apply_autocmds_group(
|
||||
restore_search_patterns();
|
||||
if (did_save_redobuff)
|
||||
restoreRedobuff(&save_redo);
|
||||
did_filetype = FALSE;
|
||||
curbuf->b_did_filetype = FALSE;
|
||||
while (au_pending_free_buf != NULL)
|
||||
{
|
||||
buf_T *b = au_pending_free_buf->b_next;
|
||||
@ -2421,7 +2421,7 @@ BYPASS_AU:
|
||||
aubuflocal_remove(buf);
|
||||
|
||||
if (retval == OK && event == EVENT_FILETYPE)
|
||||
au_did_filetype = TRUE;
|
||||
curbuf->b_au_did_filetype = TRUE;
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user