buffer: Bind b:changedtick to b:['changedtick'], remove special cases

This commit is contained in:
ZyX
2017-02-15 02:00:45 +03:00
parent 0eab7ac4b9
commit 4f10d42f82
11 changed files with 115 additions and 113 deletions

View File

@@ -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,27 @@ 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);
assert(&changedtick_di->di_tv.vval.v_number == buf->changedtick_val);
assert(*buf->changedtick_val == (varnumber_T)buf->b_changedtick);
#endif
*buf->changedtick_val = buf->b_changedtick = changedtick;
}
#define WITH_BUFFER(b, code) \
do { \
win_T *save_curwin = NULL; \