X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=keymap.c;h=d28ca0f0874491f86899dbc2f24cecff11603d42;hp=2508dffda9140aa3a28f494d81defba985464c47;hb=8e037c67a88cb4680c4391134c578e3b55a80f8a;hpb=c25bc063f35aaad6938c2022dae7a283346c2769 diff --git a/keymap.c b/keymap.c index 2508dff..d28ca0f 100644 --- a/keymap.c +++ b/keymap.c @@ -11,6 +11,8 @@ # include "config.h" #endif +#include + #include "mutt.h" #include "buffer.h" #include "ascii.h" @@ -93,15 +95,14 @@ int LastKey; struct keymap_t *Keymaps[MENU_MAX]; -static struct keymap_t *allocKeys (int len, keycode_t * keys) +static struct keymap_t *allocKeys(int len, keycode_t *keys) { - struct keymap_t *p; + struct keymap_t *p; - p = mem_calloc (1, sizeof (struct keymap_t)); - p->len = len; - p->keys = mem_malloc (len * sizeof (keycode_t)); - memcpy (p->keys, keys, len * sizeof (keycode_t)); - return (p); + p = mem_calloc (1, sizeof (struct keymap_t)); + p->len = len; + p->keys = p_dup(keys, len); + return p; } static int parse_fkey (char *s) @@ -205,10 +206,10 @@ void km_bind (const char *s, int menu, int op, char *macro, char *descr) do { len = tmp->eq; next = tmp->next; - mem_free (&tmp->macro); - mem_free (&tmp->keys); - mem_free (&tmp->descr); - mem_free (&tmp); + p_delete(&tmp->macro); + p_delete(&tmp->keys); + p_delete(&tmp->descr); + p_delete(&tmp); tmp = next; } while (tmp && len >= pos); @@ -712,7 +713,7 @@ static char *parse_keymap (int *menu, BUFFER * s, int maxmenus, int *nummenus, strfcpy (err->data, _("too few arguments"), err->dsize); } error: - mem_free (&buf.data); + p_delete(&buf.data); return (NULL); } @@ -812,7 +813,7 @@ int mutt_parse_bind (BUFFER * buf, BUFFER * s, unsigned long data, } } } - mem_free (&key); + p_delete(&key); return (r); } @@ -850,7 +851,7 @@ int mutt_parse_macro (BUFFER * buf, BUFFER * s, unsigned long data, } } - mem_free (&seq); + p_delete(&seq); } else { for (i = 0; i < nummenus; ++i) { @@ -859,7 +860,7 @@ int mutt_parse_macro (BUFFER * buf, BUFFER * s, unsigned long data, } } } - mem_free (&key); + p_delete(&key); return (r); }