changeset 1450:c6ebf66a4f80

Add option 'log_display_presence' By default status changes are not displayed anymore.
author Mikael Berthe <mikael@lilotux.net>
date Wed, 02 Apr 2008 21:17:19 +0200
parents a9a1770e4578
children bf6539a31d65
files mcabber/mcabberrc.example mcabber/src/hooks.c
diffstat 2 files changed, 34 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/mcabberrc.example	Thu Mar 27 23:40:39 2008 +0100
+++ b/mcabber/mcabberrc.example	Wed Apr 02 21:17:19 2008 +0200
@@ -400,6 +400,12 @@
 # set "buddy_me_fulljid" to 1 (default: 0)
 #set buddy_me_fulljid = 1
 #
+# Display the status changes in the log window (default: 0, never)
+# Set 'log_display_presence' to 1 to enable.
+#set log_display_presence = 0
+#
+#set show_status_in_buffer = 1
+#
 # Display the status changes in the chat buffers (default: 0, never)
 # Values:  0: never  1: only connect/disconnect  2: all
 #set show_status_in_buffer = 1
--- a/mcabber/src/hooks.c	Thu Mar 27 23:40:39 2008 +0100
+++ b/mcabber/src/hooks.c	Wed Apr 02 21:17:19 2008 +0200
@@ -288,10 +288,9 @@
                             time_t timestamp, enum imstatus status,
                             const char *status_msg)
 {
-  int buddy_format;
   int st_in_buf;
   enum imstatus oldstat;
-  char *bn = NULL;
+  char *bn;
   char *logsmsg;
   const char *rn = (resname ? resname : "");
   const char *ename = NULL;
@@ -299,33 +298,37 @@
   if (settings_opt_get_int("eventcmd_use_nickname"))
     ename = roster_getname(bjid);
 
+  oldstat = roster_getstatus(bjid, resname);
+
   st_in_buf = settings_opt_get_int("show_status_in_buffer");
-  buddy_format = settings_opt_get_int("buddy_format");
-  if (buddy_format) {
-    const char *name = roster_getname(bjid);
-    if (name && strcmp(name, bjid)) {
-      if (buddy_format == 1)
-        bn = g_strdup_printf("%s <%s/%s>", name, bjid, rn);
-      else if (buddy_format == 2)
-        bn = g_strdup_printf("%s/%s", name, rn);
-      else if (buddy_format == 3)
-        bn = g_strdup_printf("%s", name);
+
+  if (settings_opt_get_int("log_display_presence")) {
+    int buddy_format = settings_opt_get_int("buddy_format");
+    bn = NULL;
+    if (buddy_format) {
+      const char *name = roster_getname(bjid);
+      if (name && strcmp(name, bjid)) {
+        if (buddy_format == 1)
+          bn = g_strdup_printf("%s <%s/%s>", name, bjid, rn);
+        else if (buddy_format == 2)
+          bn = g_strdup_printf("%s/%s", name, rn);
+        else if (buddy_format == 3)
+          bn = g_strdup_printf("%s", name);
+      }
     }
+
+    if (!bn)
+      bn = g_strdup_printf("<%s/%s>", bjid, rn);
+
+    logsmsg = g_strdup(status_msg ? status_msg : "");
+    replace_nl_with_dots(logsmsg);
+
+    scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] %s %s",
+                 imstatus2char[oldstat], imstatus2char[status], bn, logsmsg);
+    g_free(logsmsg);
+    g_free(bn);
   }
 
-  if (!bn) {
-    bn = g_strdup_printf("<%s/%s>", bjid, rn);
-  }
-
-  logsmsg = g_strdup(status_msg ? status_msg : "");
-  replace_nl_with_dots(logsmsg);
-
-  oldstat = roster_getstatus(bjid, resname);
-  scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] %s %s",
-               imstatus2char[oldstat], imstatus2char[status], bn, logsmsg);
-  g_free(logsmsg);
-  g_free(bn);
-
   if (st_in_buf == 2 ||
       (st_in_buf == 1 && (status == offline || oldstat == offline))) {
     // Write the status change in the buddy's buffer, only if it already exists