# HG changeset patch # User Stu Tomlinson # Date 1181567334 0 # Node ID 751fbc2eff7e4cd95d3bbd517c2af6f990490923 # Parent 4c05f284253bf57af5a5bd03964bfde2e221cbab# Parent 18b62b0fc2531cc7ff03b9939f092d5d4b2fe06a merge of '3b80bf600e31f234766ed90a7bba5ea586178f08' and '3c31f6f6c8e998f6e9c550e05bf5dfdcdc9bb154' diff -r 4c05f284253b -r 751fbc2eff7e libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Mon Jun 11 01:44:07 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Mon Jun 11 13:08:54 2007 +0000 @@ -1825,9 +1825,8 @@ signon = time(NULL) - info->sessionlen; if (!aim_sncmp(purple_account_get_username(account), info->sn)) { purple_connection_set_display_name(gc, info->sn); - od->timeoffset = signon - purple_presence_get_login_time(presence); - } - purple_prpl_got_user_login_time(account, info->sn, signon - od->timeoffset); + } + purple_prpl_got_user_login_time(account, info->sn, signon); /* Idle time stuff */ /* info->idletime is the number of minutes that this user has been idle */ @@ -2849,12 +2848,12 @@ g_free(tmp); if (userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) { - time_t t = userinfo->onlinesince - od->timeoffset; + time_t t = userinfo->onlinesince; oscar_user_info_add_pair(user_info, _("Online Since"), purple_date_format_full(localtime(&t))); } if (userinfo->present & AIM_USERINFO_PRESENT_MEMBERSINCE) { - time_t t = userinfo->membersince - od->timeoffset; + time_t t = userinfo->membersince; oscar_user_info_add_pair(user_info, _("Member Since"), purple_date_format_full(localtime(&t))); } diff -r 4c05f284253b -r 751fbc2eff7e libpurple/protocols/oscar/oscar.h --- a/libpurple/protocols/oscar/oscar.h Mon Jun 11 01:44:07 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.h Mon Jun 11 13:08:54 2007 +0000 @@ -447,7 +447,6 @@ guint icontimer; guint getblisttimer; guint getinfotimer; - gint timeoffset; struct { guint maxwatchers; /* max users who can watch you */ diff -r 4c05f284253b -r 751fbc2eff7e pidgin/gtkblist.c --- a/pidgin/gtkblist.c Mon Jun 11 01:44:07 2007 +0000 +++ b/pidgin/gtkblist.c Mon Jun 11 13:08:54 2007 +0000 @@ -2994,7 +2994,14 @@ signon = purple_presence_get_login_time(presence); if (full && PURPLE_BUDDY_IS_ONLINE(b) && signon > 0) { - tmp = purple_str_seconds_to_string(time(NULL) - signon); + if (time(NULL) - signon > 63072000 /* 2 years */) { + /* + * Our local clock must be wrong, show the actual + * date instead of "4 days", etc. + */ + tmp = g_strdup(purple_date_format_long(localtime(&signon))); + } else + tmp = purple_str_seconds_to_string(time(NULL) - signon); purple_notify_user_info_add_pair(user_info, _("Logged In"), tmp); g_free(tmp); }