/* insert a key sequence into the specified map. the map is sorted by ASCII
* value (lowest to highest)
*/
-int km_bind_err (char *s, int menu, int op, char *macro, char *descr, BUFFER *err)
+int km_bind_err(char *s, int menu, int op, char *macro, char *descr, BUFFER *err)
{
int retval = 0;
struct keymap_t *map = NULL, *tmp = NULL, *last = NULL, *next = NULL;
do
{
/* Don't warn on overwriting a 'noop' binding */
- if (tmp->len != len && tmp->op != OP_NULL) {
+ if (tmp->len != len && tmp->op != OP_NULL)
+ {
/* Overwrite with the different lengths, warn */
/* TODO: MAX_SEQ here is wrong */
char old_binding[MAX_SEQ];
char new_binding[MAX_SEQ];
- km_expand_key( old_binding, MAX_SEQ, map );
- km_expand_key( new_binding, MAX_SEQ, tmp );
- if (err) {
+ km_expand_key(old_binding, MAX_SEQ, map);
+ km_expand_key(new_binding, MAX_SEQ, tmp);
+ if (err)
+ {
/* err was passed, put the string there */
- snprintf (err->data, err->dsize, _("Binding '%s' will alias '%s'"), old_binding, new_binding);
+ snprintf(err->data, err->dsize, _("Binding '%s' will alias '%s'"),
+ old_binding, new_binding);
}
- else {
- mutt_error (_("Warning: For menu '%s', binding '%s' will alias '%s'"), mutt_getnamebyvalue(menu, Menus), old_binding, new_binding);
+ else
+ {
+ mutt_error(
+ _("Warning: For menu '%s', binding '%s' will alias '%s'"),
+ mutt_getnamebyvalue(menu, Menus), old_binding, new_binding);
}
retval = -2;
}
len = tmp->eq;
next = tmp->next;
- FREE (&tmp->macro);
- FREE (&tmp->keys);
- FREE (&tmp->descr);
- FREE (&tmp);
+ FREE(&tmp->macro);
+ FREE(&tmp->keys);
+ FREE(&tmp->descr);
+ FREE(&tmp);
tmp = next;
- }
- while (tmp && len >= pos);
+ } while (tmp && len >= pos);
map->eq = len;
break;
}
last->next = map;
last->eq = lastpos;
}
- else {
+ else
+ {
Keymaps[menu] = map;
}
return retval;
}
-int
-km_bind (char *s, int menu, int op, char *macro, char *descr)
+int km_bind(char *s, int menu, int op, char *macro, char *descr)
{
- return km_bind_err (s, menu, op, macro, descr, NULL);
+ return km_bind_err(s, menu, op, macro, descr, NULL);
}
-static int km_bindkey_err (char *s, int menu, int op, BUFFER *err)
+static int km_bindkey_err(char *s, int menu, int op, BUFFER *err)
{
- return km_bind_err (s, menu, op, NULL, NULL, err);
+ return km_bind_err(s, menu, op, NULL, NULL, err);
}
-static int km_bindkey (char *s, int menu, int op)
+static int km_bindkey(char *s, int menu, int op)
{
- return km_bindkey_err (s, menu, op, NULL);
+ return km_bindkey_err(s, menu, op, NULL);
}
static int get_op(const struct binding_t *bindings, const char *start, size_t len)
return NULL;
}
-static int
-try_bind (char *key, int menu, char *func, const struct binding_t *bindings, BUFFER *err)
+static int try_bind(char *key, int menu, char *func,
+ const struct binding_t *bindings, BUFFER *err)
{
int i;
for (i = 0; bindings[i].name; i++)
+ {
if (mutt_strcmp(func, bindings[i].name) == 0)
{
- return km_bindkey_err (key, menu, bindings[i].op, err);
+ return km_bindkey_err(key, menu, bindings[i].op, err);
}
- return -1;
+ }
+ snprintf(err->data, err->dsize,
+ _("Function '%s' not available for menu '%s'"), func,
+ mutt_getnamebyvalue(menu, Menus));
+ return -1; /* Couldn't find an existing function with this name */
}
const struct binding_t *km_get_table(int menu)
/* Bind first on the generic (why?), except for this menus */
if (menu[i] != MENU_PAGER || menu[i] != MENU_EDITOR || menu[i] != MENU_GENERIC)
{
- r = try_bind (key, menu[i], buf->data, OpGeneric, err);
+ r = try_bind(key, menu[i], buf->data, OpGeneric, err);
}
- else {
- r = -1; /* If you don't bind on generic, bind on the actual menu*/
+ else
+ {
+ r = -2; /* If you don't bind on generic, bind on the actual menu*/
}
if (r != 0)
{
- bindings = km_get_table (menu[i]);
+ bindings = km_get_table(menu[i]);
if (bindings)
{
- r = try_bind (key, menu[i], buf->data, bindings, err);
- if (r == -1) {
- snprintf (err->data, err->dsize, _("%s: no such function in map"), buf->data);
- }
+ r = try_bind(key, menu[i], buf->data, bindings, err);
}
}
}
{
for (i = 0; i < nummenus; ++i)
{
- r = km_bind (key, menu[i], OP_MACRO, seq, buf->data);
+ r = km_bind(key, menu[i], OP_MACRO, seq, buf->data);
}
}
{
for (i = 0; i < nummenus; ++i)
{
- r = km_bind (key, menu[i], OP_MACRO, buf->data, NULL);
+ r = km_bind(key, menu[i], OP_MACRO, buf->data, NULL);
}
}
}