int completion_list_add_keys_codes_for_reset_cb (void *data, const char *completion_item, struct t_gui_buffer *buffer, struct t_gui_completion *completion) { int i; struct t_gui_key *ptr_key, *ptr_default_key; char *expanded_name; /* make C compiler happy */ (void) data; (void) completion_item; (void) buffer; for (i = 0; i < GUI_KEY_NUM_CONTEXTS; i++) { /* keys added or redefined */ for (ptr_key = gui_keys[i]; ptr_key; ptr_key = ptr_key->next_key) { ptr_default_key = gui_key_search (gui_default_keys[i], ptr_key->key); if (!ptr_default_key || (strcmp (ptr_default_key->command, ptr_key->command) != 0)) { expanded_name = gui_key_get_expanded_name (ptr_key->key); gui_completion_list_add (completion, (expanded_name) ? expanded_name : ptr_key->key, 0, WEECHAT_LIST_POS_SORT); if (expanded_name) free (expanded_name); } } /* keys deleted */ for (ptr_default_key = gui_default_keys[i]; ptr_default_key; ptr_default_key = ptr_default_key->next_key) { ptr_key = gui_key_search (gui_keys[i], ptr_default_key->key); if (!ptr_key) { expanded_name = gui_key_get_expanded_name (ptr_default_key->key); gui_completion_list_add (completion, (expanded_name) ? expanded_name : ptr_default_key->key, 0, WEECHAT_LIST_POS_SORT); if (expanded_name) free (expanded_name); } } } return WEECHAT_RC_OK; }
void gui_key_default_bind (int context, const char *key, const char *command) { struct t_gui_key *ptr_key; char *internal_code; internal_code = gui_key_get_internal_code (key); ptr_key = gui_key_search (gui_keys[context], (internal_code) ? internal_code : key); if (!ptr_key) gui_key_new (NULL, context, key, command); if (internal_code) free (internal_code); }