diff options
author | James McCoy <jamessan@jamessan.com> | 2016-12-12 14:34:18 -0500 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2016-12-12 14:35:09 -0500 |
commit | 7eb91c781b2a464c21c09c3919a74778936a33b3 (patch) | |
tree | 251cafc1cea0e50a8e20e643292305adea76c6de /src | |
parent | 988ab5804a16beafff26b487b0612cb7cf97ea09 (diff) | |
download | rneovim-7eb91c781b2a464c21c09c3919a74778936a33b3.tar.gz rneovim-7eb91c781b2a464c21c09c3919a74778936a33b3.tar.bz2 rneovim-7eb91c781b2a464c21c09c3919a74778936a33b3.zip |
shada: Respect the optional buffer count for shada-%
Closes #5759
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, |