diff src/digraph.c @ 1624:18ee39301b82 v7.2a

updated for version 7.2a
author vimboss
date Tue, 24 Jun 2008 22:58:06 +0000
parents fa07532e69c6
children 720a59d79bcd
line wrap: on
line diff
--- a/src/digraph.c
+++ b/src/digraph.c
@@ -2538,6 +2538,7 @@ keymap_unload()
     char_u	buf[KMAP_MAXLEN + 10];
     int		i;
     char_u	*save_cpo = p_cpo;
+    kmap_T	*kp;
 
     if (!(curbuf->b_kmap_state & KEYMAP_LOADED))
 	return;
@@ -2546,11 +2547,13 @@ keymap_unload()
     p_cpo = (char_u *)"C";
 
     /* clear the ":lmap"s */
+    kp = (kmap_T *)curbuf->b_kmap_ga.ga_data;
     for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i)
     {
-	vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s",
-			       ((kmap_T *)curbuf->b_kmap_ga.ga_data)[i].from);
+	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);
     }
 
     p_cpo = save_cpo;