Add option 'log_display_presence'
By default status changes are not displayed anymore.
--- 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