diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/buffer.c | 18 | ||||
-rw-r--r-- | src/nvim/ex_cmds.lua | 6 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 20 insertions, 6 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index b3eba4f5f6..10106bcb1d 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -2159,9 +2159,23 @@ void buflist_list(exarg_T *eap) int i; for (buf = firstbuf; buf != NULL && !got_int; buf = buf->b_next) { - /* skip unlisted buffers, unless ! was used */ - if (!buf->b_p_bl && !eap->forceit) + // skip unspecified buffers + if ((!buf->b_p_bl && !eap->forceit && !strchr((char *)eap->arg, 'u')) + || (strchr((char *)eap->arg, 'u') && buf->b_p_bl) + || (strchr((char *)eap->arg, '+') + && ((buf->b_flags & BF_READERR) || !bufIsChanged(buf))) + || (strchr((char *)eap->arg, 'a') + && (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, '-') && buf->b_p_ma) + || (strchr((char *)eap->arg, '=') && !buf->b_p_ro) + || (strchr((char *)eap->arg, 'x') && !(buf->b_flags & BF_READERR)) + || (strchr((char *)eap->arg, '%') && buf != curbuf) + || (strchr((char *)eap->arg, '#') + && (buf == curbuf || curwin->w_alt_fnum != buf->b_fnum))) { continue; + } msg_putchar('\n'); if (buf_spname(buf) != NULL) STRLCPY(NameBuff, buf_spname(buf), MAXPATHL); diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index 50814c4eb4..79b53b9fb5 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -267,7 +267,7 @@ return { }, { command='buffers', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), addr_type=ADDR_LINES, func='buflist_list', }, @@ -885,7 +885,7 @@ return { }, { command='files', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), addr_type=ADDR_LINES, func='buflist_list', }, @@ -1521,7 +1521,7 @@ return { }, { command='ls', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), addr_type=ADDR_LINES, func='buflist_list', }, diff --git a/src/nvim/version.c b/src/nvim/version.c index 7c8f16ee40..45b36e7d99 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -133,7 +133,7 @@ static int included_patches[] = { // 794 NA 793, // 792, - // 791, + 791, // 790, // 789, // 788 NA |