version 1.7, 2009/07/21 17:57:29 |
version 1.8, 2009/07/24 14:52:47 |
|
|
int |
int |
key_bindings_cmp(struct key_binding *bd1, struct key_binding *bd2) |
key_bindings_cmp(struct key_binding *bd1, struct key_binding *bd2) |
{ |
{ |
return (bd1->key - bd2->key); |
int key1, key2; |
|
|
|
key1 = bd1->key & ~KEYC_PREFIX; |
|
key2 = bd2->key & ~KEYC_PREFIX; |
|
if (key1 != key2) |
|
return (key1 - key2); |
|
|
|
if (bd1->key & KEYC_PREFIX && !(bd2->key & KEYC_PREFIX)) |
|
return (-1); |
|
if (bd2->key & KEYC_PREFIX && !(bd1->key & KEYC_PREFIX)) |
|
return (1); |
|
return (0); |
} |
} |
|
|
struct key_binding * |
struct key_binding * |
|
|
cmd->entry->init(cmd, table[i].key); |
cmd->entry->init(cmd, table[i].key); |
TAILQ_INSERT_HEAD(cmdlist, cmd, qentry); |
TAILQ_INSERT_HEAD(cmdlist, cmd, qentry); |
|
|
key_bindings_add(table[i].key, table[i].can_repeat, cmdlist); |
key_bindings_add( |
|
table[i].key | KEYC_PREFIX, table[i].can_repeat, cmdlist); |
} |
} |
} |
} |
|
|