Mercurial > pidgin.yaz
diff libpurple/status.c @ 17645:3f11fad07eda
A patch from QuLogic to fix a bug with a zero timestamp for unidle notices
in the system log.
I've changed the patch to keep the current behavior for idle notices (i.e.
to show the time when the buddy originally went idle).
Fixes #1282
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Sat, 02 Jun 2007 03:46:40 +0000 |
parents | d177369ce625 |
children | 27ee01859e9a |
line wrap: on
line diff
--- a/libpurple/status.c Fri Jun 01 14:30:44 2007 +0000 +++ b/libpurple/status.c Sat Jun 02 03:46:40 2007 +0000 @@ -1275,6 +1275,7 @@ purple_presence_set_idle(PurplePresence *presence, gboolean idle, time_t idle_time) { gboolean old_idle; + time_t current_time; g_return_if_fail(presence != NULL); @@ -1285,14 +1286,14 @@ presence->idle = idle; presence->idle_time = (idle ? idle_time : 0); + current_time = time(NULL); + if (purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_BUDDY) { - time_t current_time = time(NULL); - update_buddy_idle(purple_presence_get_buddy(presence), presence, current_time, - old_idle, idle); + old_idle, idle); } - else if(purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_ACCOUNT) + else if (purple_presence_get_context(presence) == PURPLE_PRESENCE_CONTEXT_ACCOUNT) { PurpleAccount *account; PurpleConnection *gc; @@ -1312,9 +1313,10 @@ msg = g_strdup_printf(_("+++ %s became idle"), purple_account_get_username(account)); else msg = g_strdup_printf(_("+++ %s became unidle"), purple_account_get_username(account)); + purple_log_write(log, PURPLE_MESSAGE_SYSTEM, - purple_account_get_username(account), - idle_time, msg); + purple_account_get_username(account), + (idle ? idle_time : current_time), msg); g_free(msg); } } @@ -1326,7 +1328,7 @@ prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); if (prpl_info && prpl_info->set_idle) - prpl_info->set_idle(gc, (idle ? (time(NULL) - idle_time) : 0)); + prpl_info->set_idle(gc, (idle ? (current_time - idle_time) : 0)); } }