1
0
forked from aniani/vim

patch 9.0.0965: using one window for executing autocommands is insufficient

Problem:    Using one window for executing autocommands is insufficient.
Solution:   Use up to five windows for executing autocommands.
This commit is contained in:
Bram Moolenaar
2022-11-28 18:51:43 +00:00
parent 74a694dbe2
commit e76062c078
28 changed files with 451 additions and 260 deletions

View File

@@ -977,8 +977,18 @@ EXTERN win_T *prevwin INIT(= NULL); // previous window
EXTERN win_T *curwin; // currently active window
EXTERN win_T *aucmd_win; // window used in aucmd_prepbuf()
EXTERN int aucmd_win_used INIT(= FALSE); // aucmd_win is being used
// When executing autocommands for a buffer that is not in any window, a
// special window is created to handle the side effects. When autocommands
// nest we may need more than one. Allow for up to five, if more are needed
// something crazy is happening.
#define AUCMD_WIN_COUNT 5
typedef struct {
win_T *auc_win; // window used in aucmd_prepbuf()
int auc_win_used; // this auc_win is being used
} aucmdwin_T;
EXTERN aucmdwin_T aucmd_win[AUCMD_WIN_COUNT];
#ifdef FEAT_PROP_POPUP
EXTERN win_T *first_popupwin; // first global popup window