diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-02-27 10:29:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-27 10:29:46 +0100 |
commit | c318d8e672a3b1dfe4ba7954dbca61c509c2b99c (patch) | |
tree | 282a6090dbf2d9017a3ad0a7382df08b2d320a05 /src/nvim/buffer.h | |
parent | 8c8ce1832e780f87b2922ba3acf0d44f78c50931 (diff) | |
parent | a85021068de95ef7c69b3b93b31bc32fbb154ed3 (diff) | |
download | rneovim-c318d8e672a3b1dfe4ba7954dbca61c509c2b99c.tar.gz rneovim-c318d8e672a3b1dfe4ba7954dbca61c509c2b99c.tar.bz2 rneovim-c318d8e672a3b1dfe4ba7954dbca61c509c2b99c.zip |
Merge #6112 from ZyX-I/split-eval'/buf_get_changedtick
Better b:changedtick support
Diffstat (limited to 'src/nvim/buffer.h')
-rw-r--r-- | src/nvim/buffer.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/nvim/buffer.h b/src/nvim/buffer.h index 193c9f73d8..ed3e6ab6cc 100644 --- a/src/nvim/buffer.h +++ b/src/nvim/buffer.h @@ -5,6 +5,8 @@ #include "nvim/pos.h" // for linenr_T #include "nvim/ex_cmds_defs.h" // for exarg_T #include "nvim/screen.h" // for StlClickRecord +#include "nvim/func_attr.h" +#include "nvim/eval.h" // Values for buflist_getfile() enum getf_values { @@ -79,6 +81,31 @@ static inline void restore_win_for_buf(win_T *save_curwin, } } +static inline void buf_set_changedtick(buf_T *const buf, const int changedtick) + REAL_FATTR_NONNULL_ALL REAL_FATTR_ALWAYS_INLINE; + +/// Set b_changedtick and corresponding variable +/// +/// @param[out] buf Buffer to set changedtick in. +/// @param[in] changedtick New value. +static inline void buf_set_changedtick(buf_T *const buf, const int changedtick) +{ +#ifndef NDEBUG + dictitem_T *const changedtick_di = dict_find( + buf->b_vars, (char_u *)"changedtick", sizeof("changedtick") - 1); + assert(changedtick_di != NULL); + assert(changedtick_di->di_tv.v_type == VAR_NUMBER); + assert(changedtick_di->di_tv.v_lock == VAR_FIXED); + // For some reason formatc does not like the below. +# ifndef UNIT_TESTING_LUA_PREPROCESSING + assert(changedtick_di->di_flags == (DI_FLAGS_RO|DI_FLAGS_FIX)); +# endif + assert(changedtick_di == (dictitem_T *)&buf->changedtick_di); + assert(&buf->b_changedtick == &buf->changedtick_di.di_tv.vval.v_number); +#endif + buf->b_changedtick = changedtick; +} + #define WITH_BUFFER(b, code) \ do { \ win_T *save_curwin = NULL; \ |