diff options
author | Rob Pilling <robpilling@gmail.com> | 2020-03-22 21:23:33 +0000 |
---|---|---|
committer | Rob Pilling <robpilling@gmail.com> | 2020-04-19 20:18:41 +0100 |
commit | 9d59f066cbbe8893559586eee5bfca9378cf6385 (patch) | |
tree | d88371aeafc91dd10500a78568d36ba952b55a05 /src/nvim/buffer.c | |
parent | ec2d45a8515399e3f23e0a552bcb222ae4836f7a (diff) | |
download | rneovim-9d59f066cbbe8893559586eee5bfca9378cf6385.tar.gz rneovim-9d59f066cbbe8893559586eee5bfca9378cf6385.tar.bz2 rneovim-9d59f066cbbe8893559586eee5bfca9378cf6385.zip |
vim-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 vim/vim#2751)
https://github.com/vim/vim/commit/0751f51a5b428805a8c1e9fe529693d032bec991
Diffstat (limited to 'src/nvim/buffer.c')
-rw-r--r-- | src/nvim/buffer.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index ec86663f00..ab86ed6fdc 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -2600,6 +2600,9 @@ void buflist_list(exarg_T *eap) int i; for (buf = firstbuf; buf != NULL && !got_int; buf = buf->b_next) { + const bool is_terminal = buf->terminal; + const bool job_running = buf->terminal && terminal_running(buf->terminal); + // skip unspecified buffers if ((!buf->b_p_bl && !eap->forceit && !strchr((char *)eap->arg, 'u')) || (strchr((char *)eap->arg, 'u') && buf->b_p_bl) @@ -2609,6 +2612,8 @@ void buflist_list(exarg_T *eap) && (buf->b_ml.ml_mfp == NULL || buf->b_nwindows == 0)) || (strchr((char *)eap->arg, 'h') && (buf->b_ml.ml_mfp == NULL || buf->b_nwindows != 0)) + || (strchr((char *)eap->arg, 'R') && (!is_terminal || !job_running)) + || (strchr((char *)eap->arg, 'F') && (!is_terminal || job_running)) || (strchr((char *)eap->arg, '-') && buf->b_p_ma) || (strchr((char *)eap->arg, '=') && !buf->b_p_ro) || (strchr((char *)eap->arg, 'x') && !(buf->b_flags & BF_READERR)) |