--- 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) {
--- 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... */
--- 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);