From 45b7a2c50335e1943a36715101e40eda5a1423f3 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 11 Jul 2024 08:02:59 +0800 Subject: vim-patch:9.1.0557: moving in the buffer list doesn't work as documented (#29653) Problem: moving in the buffer list doesn't work as documented (SenileFelineS) Solution: Skip non-help buffers, when run from normal buffers, else only move from help buffers to the next help buffer (LemonBoy) As explained in the help section for :bnext and :bprev the commands should jump from help buffers to help buffers (and from regular ones to regular ones). fixes: vim/vim#4478 closes: vim/vim#15198 https://github.com/vim/vim/commit/893eeeb44583ca33276e263165b2a6e50fd297d0 Co-authored-by: LemonBoy --- src/nvim/buffer.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/nvim/buffer.h') diff --git a/src/nvim/buffer.h b/src/nvim/buffer.h index 4c5023d39a..ffef4eefb6 100644 --- a/src/nvim/buffer.h +++ b/src/nvim/buffer.h @@ -39,7 +39,7 @@ enum bln_values { BLN_NOCURWIN = 128, ///< buffer is not associated with curwin }; -/// Values for action argument for do_buffer() +/// Values for action argument for do_buffer_ext() and close_buffer() enum dobuf_action_values { DOBUF_GOTO = 0, ///< go to specified buffer DOBUF_SPLIT = 1, ///< split window and go to specified buffer @@ -48,7 +48,7 @@ enum dobuf_action_values { DOBUF_WIPE = 4, ///< delete specified buffer(s) really }; -/// Values for start argument for do_buffer() +/// Values for start argument for do_buffer_ext() enum dobuf_start_values { DOBUF_CURRENT = 0, ///< "count" buffer from current buffer DOBUF_FIRST = 1, ///< "count" buffer from first buffer @@ -56,6 +56,13 @@ enum dobuf_start_values { DOBUF_MOD = 3, ///< "count" mod. buffer from current buffer }; +/// Values for flags argument of do_buffer_ext() +enum dobuf_flags_value { + DOBUF_FORCEIT = 1, ///< :cmd! + DOBUF_SKIPHELP = 4, ///< skip or keep help buffers depending on b_help of the + ///< starting buffer +}; + /// flags for buf_freeall() enum bfa_values { BFA_DEL = 1, ///< buffer is going to be deleted -- cgit From 7dffc36e61c46e6adc92cff5944e876446f3c40e Mon Sep 17 00:00:00 2001 From: bfredl Date: Thu, 13 Jun 2024 12:00:58 +0200 Subject: refactor(declarations): also generate prototypes for functions in headers Before this change, "static inline" functions in headers needed to have their function attributes specified in a completely different way. The prototype had to be duplicated, and REAL_FATTR_ had to be used instead of the public FUNC_ATTR_ names. TODO: need a check that a "header.h.inline.generated.h" file is not forgotten when the first "static inline" function with attributes is added to a header (they would just be silently missing). --- src/nvim/buffer.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/nvim/buffer.h') diff --git a/src/nvim/buffer.h b/src/nvim/buffer.h index ffef4eefb6..2936c297fe 100644 --- a/src/nvim/buffer.h +++ b/src/nvim/buffer.h @@ -5,7 +5,6 @@ #include "nvim/buffer_defs.h" // IWYU pragma: keep #include "nvim/eval/typval_defs.h" #include "nvim/ex_cmds_defs.h" // IWYU pragma: keep -#include "nvim/func_attr.h" #include "nvim/gettext_defs.h" // IWYU pragma: keep #include "nvim/macros_defs.h" #include "nvim/marktree_defs.h" @@ -76,18 +75,17 @@ EXTERN char *msg_qflist INIT( = N_("[Quickfix List]")); #ifdef INCLUDE_GENERATED_DECLARATIONS # include "buffer.h.generated.h" +# include "buffer.h.inline.generated.h" #endif -static inline varnumber_T buf_get_changedtick(const buf_T *buf) - REAL_FATTR_NONNULL_ALL REAL_FATTR_ALWAYS_INLINE REAL_FATTR_PURE - REAL_FATTR_WARN_UNUSED_RESULT; - /// Get b:changedtick value /// /// Faster then querying b:. /// /// @param[in] buf Buffer to get b:changedtick from. static inline varnumber_T buf_get_changedtick(const buf_T *const buf) + FUNC_ATTR_NONNULL_ALL FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_PURE + FUNC_ATTR_WARN_UNUSED_RESULT { return buf->changedtick_di.di_tv.vval.v_number; } -- cgit