# HG changeset patch # User Mikael Berthe # Date 1148506231 -7200 # Node ID 7f056c56656904874191964c054d2c199e3405a4 # Parent b30df2ab457fa196063b80b8707ad030fdf37ca9 Commands /alias & /bind list the key bindings and aliases diff -r b30df2ab457f -r 7f056c566569 mcabber/src/commands.c --- a/mcabber/src/commands.c Wed May 24 22:29:05 2006 +0200 +++ b/mcabber/src/commands.c Wed May 24 23:30:31 2006 +0200 @@ -1300,6 +1300,11 @@ g_free(option_utf8); } +static void dump_alias(void *param, char *k, char *v) +{ + scr_LogPrint(LPRINT_NORMAL|LPRINT_NOTUTF8, "Alias %s = %s", k, v); +} + static void do_alias(char *arg) { guint assign; @@ -1307,7 +1312,7 @@ assign = parse_assigment(arg, &alias, &value); if (!alias) { - scr_LogPrint(LPRINT_NORMAL, "Alias what?"); + settings_foreach(SETTINGS_TYPE_ALIAS, &dump_alias, NULL); return; } if (!assign) { @@ -1346,6 +1351,11 @@ } } +static void dump_bind(void *param, char *k, char *v) +{ + scr_LogPrint(LPRINT_NORMAL, "Key %4s is bound to: %s", k, v); +} + static void do_bind(char *arg) { guint assign; @@ -1353,7 +1363,7 @@ assign = parse_assigment(arg, &keycode, &value); if (!keycode) { - scr_LogPrint(LPRINT_NORMAL, "Bind what keycode?"); + settings_foreach(SETTINGS_TYPE_BINDING, &dump_bind, NULL); return; } if (!assign) { diff -r b30df2ab457f -r 7f056c566569 mcabber/src/settings.c --- a/mcabber/src/settings.c Wed May 24 22:29:05 2006 +0200 +++ b/mcabber/src/settings.c Wed May 24 23:30:31 2006 +0200 @@ -323,4 +323,23 @@ return rstatus; } +// settings_foreach(type, pfunction, param) +// Call pfunction(param, key, value) for each setting with requested type. +void settings_foreach(guint type, void (*pfunc)(void *param, char *k, char *v), + void *param) +{ + GSList **plist; + GSList *ptr; + T_setting *setting; + + plist = get_list_ptr(type); + + if (!*plist) return; + + for (ptr = *plist ; ptr; ptr = g_slist_next(ptr)) { + setting = ptr->data; + pfunc(param, setting->name, setting->value); + } +} + /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ diff -r b30df2ab457f -r 7f056c566569 mcabber/src/settings.h --- a/mcabber/src/settings.h Wed May 24 22:29:05 2006 +0200 +++ b/mcabber/src/settings.h Wed May 24 23:30:31 2006 +0200 @@ -26,6 +26,9 @@ const gchar *settings_get(guint type, const gchar *key); int settings_get_int(guint type, const gchar *key); const gchar *settings_get_status_msg(enum imstatus status); +void settings_foreach(guint type, + void (*pfunc)(void *param, char *k, char *v), + void *param); const gchar *isbound(int key);