diff options
| author | Björn Linse <bjorn.linse@gmail.com> | 2021-12-09 21:10:58 +0100 | 
|---|---|---|
| committer | Björn Linse <bjorn.linse@gmail.com> | 2021-12-09 21:10:58 +0100 | 
| commit | 51822f065590154561a59435ca920207fd39bdda (patch) | |
| tree | 68b23bad187daef4b6a01628747d87c0d1f60526 /src/nvim/eval.c | |
| parent | 2ec0e0a868ba20373ef4cd2d2540db7e829ddc56 (diff) | |
| download | rneovim-51822f065590154561a59435ca920207fd39bdda.tar.gz rneovim-51822f065590154561a59435ca920207fd39bdda.tar.bz2 rneovim-51822f065590154561a59435ca920207fd39bdda.zip | |
refactor(misc1): move out autocmd related functions
Diffstat (limited to 'src/nvim/eval.c')
| -rw-r--r-- | src/nvim/eval.c | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 85e81ee975..d45aa8194c 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -303,6 +303,31 @@ const list_T *eval_msgpack_type_lists[] = {    [kMPExt] = NULL,  }; +dict_T *get_v_event(save_v_event_T *sve) +{ +  dict_T *v_event = get_vim_var_dict(VV_EVENT); + +  if (v_event->dv_hashtab.ht_used > 0) { +    // recursive use of v:event, save, make empty and restore later +    sve->sve_did_save = true; +    sve->sve_hashtab = v_event->dv_hashtab; +    hash_init(&v_event->dv_hashtab); +  } else { +    sve->sve_did_save = false; +  } +  return v_event; +} + +void restore_v_event(dict_T *v_event, save_v_event_T *sve) +{ +  tv_dict_free_contents(v_event); +  if (sve->sve_did_save) { +    v_event->dv_hashtab = sve->sve_hashtab; +  } else { +    hash_init(&v_event->dv_hashtab); +  } +} +  // Return "n1" divided by "n2", taking care of dividing by zero.  varnumber_T num_divide(varnumber_T n1, varnumber_T n2)    FUNC_ATTR_CONST FUNC_ATTR_WARN_UNUSED_RESULT | 
