mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.0.1651: cannot filter :ls output for terminal buffers
Problem: Cannot filter :ls output for terminal buffers. Solution: Add flags for terminal buffers. (Marcin Szamotulski, closes #2751)
This commit is contained in:
20
src/buffer.c
20
src/buffer.c
@@ -2930,18 +2930,34 @@ buflist_list(exarg_T *eap)
|
||||
int i;
|
||||
int ro_char;
|
||||
int changed_char;
|
||||
#ifdef FEAT_TERMINAL
|
||||
int job_running;
|
||||
int job_none_open;
|
||||
#endif
|
||||
|
||||
for (buf = firstbuf; buf != NULL && !got_int; buf = buf->b_next)
|
||||
{
|
||||
#ifdef FEAT_TERMINAL
|
||||
job_running = term_job_running(buf->b_term);
|
||||
job_none_open = job_running && term_none_open(buf->b_term);
|
||||
#endif
|
||||
/* skip unlisted buffers, unless ! was used */
|
||||
if ((!buf->b_p_bl && !eap->forceit && !vim_strchr(eap->arg, 'u'))
|
||||
|| (vim_strchr(eap->arg, 'u') && buf->b_p_bl)
|
||||
|| (vim_strchr(eap->arg, '+')
|
||||
&& ((buf->b_flags & BF_READERR) || !bufIsChanged(buf)))
|
||||
|| (vim_strchr(eap->arg, 'a')
|
||||
&& (buf->b_ml.ml_mfp == NULL || buf->b_nwindows == 0))
|
||||
&& (buf->b_ml.ml_mfp == NULL || buf->b_nwindows == 0))
|
||||
|| (vim_strchr(eap->arg, 'h')
|
||||
&& (buf->b_ml.ml_mfp == NULL || buf->b_nwindows != 0))
|
||||
&& (buf->b_ml.ml_mfp == NULL || buf->b_nwindows != 0))
|
||||
#ifdef FEAT_TERMINAL
|
||||
|| (vim_strchr(eap->arg, 'R')
|
||||
&& (!job_running || (job_running && job_none_open)))
|
||||
|| (vim_strchr(eap->arg, '?')
|
||||
&& (!job_running || (job_running && !job_none_open)))
|
||||
|| (vim_strchr(eap->arg, 'F')
|
||||
&& (job_running || buf->b_term == NULL))
|
||||
#endif
|
||||
|| (vim_strchr(eap->arg, '-') && buf->b_p_ma)
|
||||
|| (vim_strchr(eap->arg, '=') && !buf->b_p_ro)
|
||||
|| (vim_strchr(eap->arg, 'x') && !(buf->b_flags & BF_READERR))
|
||||
|
Reference in New Issue
Block a user