diff options
author | James McCoy <jamessan@jamessan.com> | 2016-12-13 22:35:25 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-13 22:35:25 -0500 |
commit | 8c9cccbcb6bb5ee803f308916d5de1b949e0b13c (patch) | |
tree | dcb2003af3f9b761f86e2c86a6bb8a69a3243d30 /src | |
parent | 5855f30cb1a1bd6b4eee7ea8e2e80eb7eec8f3ec (diff) | |
parent | 7eb91c781b2a464c21c09c3919a74778936a33b3 (diff) | |
download | rneovim-8c9cccbcb6bb5ee803f308916d5de1b949e0b13c.tar.gz rneovim-8c9cccbcb6bb5ee803f308916d5de1b949e0b13c.tar.bz2 rneovim-8c9cccbcb6bb5ee803f308916d5de1b949e0b13c.zip |
Merge pull request #5760 from jamessan/shada-percent-count
shada: Respect the optional buffer count for shada-%
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/shada.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c index d902079739..34524580d7 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -2424,12 +2424,13 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer, // Write buffer list if (find_shada_parameter('%') != NULL) { + int max_bufs = get_shada_parameter('%'); size_t buf_count = 0; #define IGNORE_BUF(buf)\ (buf->b_ffname == NULL || !buf->b_p_bl || bt_quickfix(buf) \ || in_bufset(&removable_bufs, buf)) FOR_ALL_BUFFERS(buf) { - if (!IGNORE_BUF(buf)) { + if (!IGNORE_BUF(buf) && (max_bufs < 0 || buf_count < (size_t)max_bufs)) { buf_count++; } } @@ -2450,6 +2451,9 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer, if (IGNORE_BUF(buf)) { continue; } + if (i >= buf_count) { + break; + } buflist_entry.data.buffer_list.buffers[i] = (struct buffer_list_buffer) { .pos = buf->b_last_cursor.mark, .fname = (char *) buf->b_ffname, |