changeset 1661:64a7428afcb3

Print list of options with '/set'
author Myhailo Danylenko <isbear@ukrpost.net>
date Mon, 07 Dec 2009 11:16:03 +0200
parents dc03a24198a9
children 63ebb1d32c7d
files mcabber/src/commands.c mcabber/src/settings.c
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/commands.c	Sat Dec 05 21:51:03 2009 +0100
+++ b/mcabber/src/commands.c	Mon Dec 07 11:16:03 2009 +0200
@@ -2103,12 +2103,24 @@
   update_roster = TRUE;
 }
 
+static void print_option_cb(char *k, char *v, void *f)
+{
+  char *format = (char *)f;
+  scr_LogPrint (LPRINT_NORMAL, format, k, v);
+}
+
 static void do_set(char *arg)
 {
   guint assign;
   gchar *option, *value;
   gchar *option_utf8;
 
+  if (!*arg) {
+    // list all set options
+    settings_foreach(SETTINGS_TYPE_OPTION, print_option_cb, "%s = [%s]");
+    return;
+  }
+
   assign = parse_assigment(arg, &option, &value);
   if (!option) {
     scr_LogPrint(LPRINT_NORMAL, "Set what option?");
--- a/mcabber/src/settings.c	Sat Dec 05 21:51:03 2009 +0100
+++ b/mcabber/src/settings.c	Mon Dec 07 11:16:03 2009 +0200
@@ -380,7 +380,7 @@
 }
 
 //  settings_foreach(type, pfunction, param)
-// Call pfunction(param, key, value) for each setting with requested type.
+// Call pfunction(key, value, param) for each setting with requested type.
 void settings_foreach(guint type, void (*pfunc)(char *k, char *v, void *param),
                       void *param)
 {