diff options
| author | b-r-o-c-k <brockmammen@gmail.com> | 2018-04-14 14:17:51 -0500 | 
|---|---|---|
| committer | b-r-o-c-k <brockmammen@gmail.com> | 2018-04-14 14:17:51 -0500 | 
| commit | ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f (patch) | |
| tree | 92de2079e80f5f289dd87a54af123cb7d90c3058 /src/nvim/digraph.c | |
| parent | 78bc52ea5397c092d01cd08296fe1dc85d998329 (diff) | |
| parent | ef4feab0e75be19c5f41d70a001db980b72090f5 (diff) | |
| download | rneovim-ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f.tar.gz rneovim-ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f.tar.bz2 rneovim-ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f.zip  | |
Merge branch 'master' into s-dash-stdin
Diffstat (limited to 'src/nvim/digraph.c')
| -rw-r--r-- | src/nvim/digraph.c | 17 | 
1 files changed, 13 insertions, 4 deletions
diff --git a/src/nvim/digraph.c b/src/nvim/digraph.c index dbcc8db109..bc4c12e0b7 100644 --- a/src/nvim/digraph.c +++ b/src/nvim/digraph.c @@ -1841,6 +1841,16 @@ void ex_loadkeymap(exarg_T *eap)    status_redraw_curbuf();  } +/// Frees the buf_T.b_kmap_ga field of a buffer. +void keymap_ga_clear(garray_T *kmap_ga) +{ +  kmap_T *kp = (kmap_T *)kmap_ga->ga_data; +  for (int i = 0; i < kmap_ga->ga_len; i++) { +    xfree(kp[i].from); +    xfree(kp[i].to); +  } +} +  /// Stop using 'keymap'.  static void keymap_unload(void)  { @@ -1858,12 +1868,11 @@ static void keymap_unload(void)    // clear the ":lmap"s    kp = (kmap_T *)curbuf->b_kmap_ga.ga_data; -  for (int i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) { +  for (int i = 0; i < curbuf->b_kmap_ga.ga_len; i++) {      vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from); -    (void)do_map(1, buf, LANGMAP, FALSE); -    xfree(kp[i].from); -    xfree(kp[i].to); +    (void)do_map(1, buf, LANGMAP, false);    } +  keymap_ga_clear(&curbuf->b_kmap_ga);    p_cpo = save_cpo;  | 
