Mercurial > ~mikael > mcabber > hg
diff mcabber/src/hooks.c @ 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 | 7b36b91a4388 |
line wrap: on
line diff
--- 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