Mercurial > ~mikael > mcabber > hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
1449:a9a1770e4578 | 1450:c6ebf66a4f80 |
---|---|
286 | 286 |
287 void hk_statuschange(const char *bjid, const char *resname, gchar prio, | 287 void hk_statuschange(const char *bjid, const char *resname, gchar prio, |
288 time_t timestamp, enum imstatus status, | 288 time_t timestamp, enum imstatus status, |
289 const char *status_msg) | 289 const char *status_msg) |
290 { | 290 { |
291 int buddy_format; | |
292 int st_in_buf; | 291 int st_in_buf; |
293 enum imstatus oldstat; | 292 enum imstatus oldstat; |
294 char *bn = NULL; | 293 char *bn; |
295 char *logsmsg; | 294 char *logsmsg; |
296 const char *rn = (resname ? resname : ""); | 295 const char *rn = (resname ? resname : ""); |
297 const char *ename = NULL; | 296 const char *ename = NULL; |
298 | 297 |
299 if (settings_opt_get_int("eventcmd_use_nickname")) | 298 if (settings_opt_get_int("eventcmd_use_nickname")) |
300 ename = roster_getname(bjid); | 299 ename = roster_getname(bjid); |
301 | 300 |
301 oldstat = roster_getstatus(bjid, resname); | |
302 | |
302 st_in_buf = settings_opt_get_int("show_status_in_buffer"); | 303 st_in_buf = settings_opt_get_int("show_status_in_buffer"); |
303 buddy_format = settings_opt_get_int("buddy_format"); | 304 |
304 if (buddy_format) { | 305 if (settings_opt_get_int("log_display_presence")) { |
305 const char *name = roster_getname(bjid); | 306 int buddy_format = settings_opt_get_int("buddy_format"); |
306 if (name && strcmp(name, bjid)) { | 307 bn = NULL; |
307 if (buddy_format == 1) | 308 if (buddy_format) { |
308 bn = g_strdup_printf("%s <%s/%s>", name, bjid, rn); | 309 const char *name = roster_getname(bjid); |
309 else if (buddy_format == 2) | 310 if (name && strcmp(name, bjid)) { |
310 bn = g_strdup_printf("%s/%s", name, rn); | 311 if (buddy_format == 1) |
311 else if (buddy_format == 3) | 312 bn = g_strdup_printf("%s <%s/%s>", name, bjid, rn); |
312 bn = g_strdup_printf("%s", name); | 313 else if (buddy_format == 2) |
313 } | 314 bn = g_strdup_printf("%s/%s", name, rn); |
314 } | 315 else if (buddy_format == 3) |
315 | 316 bn = g_strdup_printf("%s", name); |
316 if (!bn) { | 317 } |
317 bn = g_strdup_printf("<%s/%s>", bjid, rn); | 318 } |
318 } | 319 |
319 | 320 if (!bn) |
320 logsmsg = g_strdup(status_msg ? status_msg : ""); | 321 bn = g_strdup_printf("<%s/%s>", bjid, rn); |
321 replace_nl_with_dots(logsmsg); | 322 |
322 | 323 logsmsg = g_strdup(status_msg ? status_msg : ""); |
323 oldstat = roster_getstatus(bjid, resname); | 324 replace_nl_with_dots(logsmsg); |
324 scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] %s %s", | 325 |
325 imstatus2char[oldstat], imstatus2char[status], bn, logsmsg); | 326 scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] %s %s", |
326 g_free(logsmsg); | 327 imstatus2char[oldstat], imstatus2char[status], bn, logsmsg); |
327 g_free(bn); | 328 g_free(logsmsg); |
329 g_free(bn); | |
330 } | |
328 | 331 |
329 if (st_in_buf == 2 || | 332 if (st_in_buf == 2 || |
330 (st_in_buf == 1 && (status == offline || oldstat == offline))) { | 333 (st_in_buf == 1 && (status == offline || oldstat == offline))) { |
331 // Write the status change in the buddy's buffer, only if it already exists | 334 // Write the status change in the buddy's buffer, only if it already exists |
332 if (scr_BuddyBufferExists(bjid)) { | 335 if (scr_BuddyBufferExists(bjid)) { |