patch 8.2.4428: crash when switching tabpage while in the cmdline window
Problem: Crash when switching tabpage while in the cmdline window.
Solution: Disallow switching tabpage when in the cmdline window.
diff --git a/src/usercmd.c b/src/usercmd.c
index d4a7a9c..1ff4d0d 100644
--- a/src/usercmd.c
+++ b/src/usercmd.c
@@ -141,11 +141,7 @@
/*
* Look for buffer-local user commands first, then global ones.
*/
- gap =
-#ifdef FEAT_CMDWIN
- is_in_cmdwin() ? &prevwin->w_buffer->b_ucmds :
-#endif
- &curbuf->b_ucmds;
+ gap = &prevwin_curwin()->w_buffer->b_ucmds;
for (;;)
{
for (j = 0; j < gap->ga_len; ++j)
@@ -358,11 +354,7 @@
get_user_commands(expand_T *xp UNUSED, int idx)
{
// In cmdwin, the alternative buffer should be used.
- buf_T *buf =
-#ifdef FEAT_CMDWIN
- is_in_cmdwin() ? prevwin->w_buffer :
-#endif
- curbuf;
+ buf_T *buf = prevwin_curwin()->w_buffer;
if (idx < buf->b_ucmds.ga_len)
return USER_CMD_GA(&buf->b_ucmds, idx)->uc_name;
@@ -386,11 +378,7 @@
if (cmdidx == CMD_USER_BUF)
{
// In cmdwin, the alternative buffer should be used.
- buf_T *buf =
-#ifdef FEAT_CMDWIN
- is_in_cmdwin() ? prevwin->w_buffer :
-#endif
- curbuf;
+ buf_T *buf = prevwin_curwin()->w_buffer;
if (idx < buf->b_ucmds.ga_len)
return USER_CMD_GA(&buf->b_ucmds, idx)->uc_name;
@@ -478,11 +466,7 @@
garray_T *gap;
// In cmdwin, the alternative buffer should be used.
- gap =
-#ifdef FEAT_CMDWIN
- is_in_cmdwin() ? &prevwin->w_buffer->b_ucmds :
-#endif
- &curbuf->b_ucmds;
+ gap = &prevwin_curwin()->w_buffer->b_ucmds;
for (;;)
{
for (i = 0; i < gap->ga_len; ++i)