diff options
-rw-r--r-- | src/buffer.c | 1 | ||||
-rw-r--r-- | src/digraph.c | 15 | ||||
-rw-r--r-- | src/proto/digraph.pro | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 17 insertions, 2 deletions
diff --git a/src/buffer.c b/src/buffer.c index eeba53012..ecd8f4eb6 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2212,6 +2212,7 @@ free_buf_options( clear_string_option(&buf->b_p_isk); #ifdef FEAT_KEYMAP clear_string_option(&buf->b_p_keymap); + keymap_clear(&buf->b_kmap_ga); ga_clear(&buf->b_kmap_ga); #endif #ifdef FEAT_COMMENTS diff --git a/src/digraph.c b/src/digraph.c index 6b5a5aac2..2c7ba9f0c 100644 --- a/src/digraph.c +++ b/src/digraph.c @@ -2452,9 +2452,8 @@ keymap_unload(void) { vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from); (void)do_map(1, buf, LANGMAP, FALSE); - vim_free(kp[i].from); - vim_free(kp[i].to); } + keymap_clear(&curbuf->b_kmap_ga); p_cpo = save_cpo; @@ -2463,4 +2462,16 @@ keymap_unload(void) status_redraw_curbuf(); } + void +keymap_clear(garray_T *kmap) +{ + int i; + kmap_T *kp = (kmap_T *)kmap->ga_data; + + for (i = 0; i < kmap->ga_len; ++i) + { + vim_free(kp[i].from); + vim_free(kp[i].to); + } +} #endif /* FEAT_KEYMAP */ diff --git a/src/proto/digraph.pro b/src/proto/digraph.pro index a8d2ae903..3cb7dceb2 100644 --- a/src/proto/digraph.pro +++ b/src/proto/digraph.pro @@ -6,4 +6,5 @@ void putdigraph(char_u *str); void listdigraphs(void); char_u *keymap_init(void); void ex_loadkeymap(exarg_T *eap); +void keymap_clear(garray_T *kmap); /* vim: set ft=c : */ diff --git a/src/version.c b/src/version.c index bace9d3c6..6fe422d17 100644 --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1435, +/**/ 1434, /**/ 1433, |