diff options
author | Sean Dewar <seandewar@users.noreply.github.com> | 2023-08-16 17:15:05 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-01-23 22:37:39 +0100 |
commit | 1fb41032060df09ca2640dc49541f11062f6dfaa (patch) | |
tree | 47869301c90c7b3e0bf016b4c29d4b857ac0e74f /src/buffer.c | |
parent | 43b395ec2e7d24a067d7cb00109818b64da144a5 (diff) |
patch 9.1.0049: Make "[Command Line]" a special buffer namev9.1.0049
Problem: E95 is possible if a buffer called "[Command Line]" already
exists when opening the cmdwin. This can also happen if the
cmdwin's buffer could not be deleted when closing.
Solution: Un-name the cmdwin buffer, and give it a special name instead,
similar to what's done for quickfix buffers and for unnamed
prompt and scratch buffers. As a result, BufFilePre/Post are
no longer fired when opening the cmdwin. Add a "command" key
to the dictionary returned by getbufinfo() to differentiate
the cmdwin buffer instead. (Sean Dewar)
NOTE: This is technically a breaking change... maybe this needs a different
solution? (Or maybe this issue can be ignored...)
A GitHub search reveals some plugins expect the old behaviour. However, many of
those plugins also do not seem to account for the string being translated, so
they are subtly broken anyway (not withstanding the fact that you can call any
old buffer "[Command Line]" too...)
closes: #12819
Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c index 64e4926475..62c396a531 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5936,6 +5936,8 @@ buf_spname(buf_T *buf) #endif if (buf->b_fname != NULL) return buf->b_fname; + if (buf == cmdwin_buf) + return (char_u *)_("[Command Line]"); #ifdef FEAT_JOB_CHANNEL if (bt_prompt(buf)) return (char_u *)_("[Prompt]"); |