# HG changeset patch # User Marcus Lundblad # Date 1226946146 0 # Node ID 3d4ce9df0d48e297af7d4feb1b6215f459dea127 # Parent bb996cc490732d6c7c1f9fb57757124ea20f89a7 Change jabber_presence_send to not take an extra argument to force idle updating Changed a g_sprintf to g_snprintf Thanks to darkrain42 for feedback and suggestions diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/buddy.c --- a/libpurple/protocols/jabber/buddy.c Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/buddy.c Mon Nov 17 18:22:26 2008 +0000 @@ -627,7 +627,7 @@ gpresence = purple_account_get_presence(gc->account); status = purple_presence_get_active_status(gpresence); - jabber_presence_send(gc->account, status, FALSE); + jabber_presence_send(gc->account, status); } /* diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/disco.c --- a/libpurple/protocols/jabber/disco.c Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/disco.c Mon Nov 17 18:22:26 2008 +0000 @@ -348,7 +348,7 @@ } /* Send initial presence; this will trigger receipt of presence for contacts on the roster */ - jabber_presence_send(js->gc->account, NULL, FALSE); + jabber_presence_send(js->gc->account, NULL); if (js->server_caps & JABBER_CAP_ADHOC) { /* The server supports ad-hoc commands, so let's request the list */ diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Mon Nov 17 18:22:26 2008 +0000 @@ -1441,7 +1441,7 @@ /* send out an updated prescence */ purple_debug_info("jabber", "sending updated presence for idle\n"); - jabber_presence_send(account, status, TRUE); + jabber_presence_send(account, status); } void jabber_add_feature(const char *shortname, const char *namespace, JabberFeatureEnabled cb) { diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/jabber.h --- a/libpurple/protocols/jabber/jabber.h Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.h Mon Nov 17 18:22:26 2008 +0000 @@ -153,6 +153,7 @@ GList *file_transfers; time_t idle; + time_t old_idle; JabberID *user; PurpleConnection *gc; diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/presence.c Mon Nov 17 18:22:26 2008 +0000 @@ -95,8 +95,7 @@ } -void jabber_presence_send(PurpleAccount *account, PurpleStatus *status, - gboolean update_idle) +void jabber_presence_send(PurpleAccount *account, PurpleStatus *status) { PurpleConnection *gc = NULL; JabberStream *js = NULL; @@ -151,8 +150,9 @@ #define CHANGED(a,b) ((!a && b) || (a && a[0] == '\0' && b && b[0] != '\0') || \ (a && !b) || (a && a[0] != '\0' && b && b[0] == '\0') || (a && b && strcmp(a,b))) /* check if there are any differences to the and send them in that case */ - if (update_idle || allowBuzz != js->allowBuzz || js->old_state != state || CHANGED(js->old_msg, stripped) || - js->old_priority != priority || CHANGED(js->old_avatarhash, js->avatar_hash)) { + if (allowBuzz != js->allowBuzz || js->old_state != state || CHANGED(js->old_msg, stripped) || + js->old_priority != priority || CHANGED(js->old_avatarhash, js->avatar_hash) || + js->old_idle != js->idle) { js->allowBuzz = allowBuzz; presence = jabber_presence_create_js(js, state, stripped, priority); @@ -179,6 +179,7 @@ js->old_avatarhash = g_strdup(js->avatar_hash); js->old_state = state; js->old_priority = priority; + js->old_idle = js->idle; } g_free(stripped); @@ -265,7 +266,7 @@ if (js->idle && state != JABBER_BUDDY_STATE_UNAVAILABLE) { xmlnode *query = xmlnode_new_child(presence, "query"); gchar seconds[10]; - g_sprintf(seconds, "%d", (int) (time(NULL) - js->idle)); + g_snprintf(seconds, 10, "%d", (int) (time(NULL) - js->idle)); xmlnode_set_namespace(query, "jabber:iq:last"); xmlnode_set_attrib(query, "seconds", seconds); diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/presence.h --- a/libpurple/protocols/jabber/presence.h Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/presence.h Mon Nov 17 18:22:26 2008 +0000 @@ -26,8 +26,7 @@ #include "jabber.h" #include "xmlnode.h" -void jabber_presence_send(PurpleAccount *account, PurpleStatus *status, - gboolean update_idle); +void jabber_presence_send(PurpleAccount *account, PurpleStatus *status); xmlnode *jabber_presence_create(JabberBuddyState state, const char *msg, int priority); /* DEPRECATED */ xmlnode *jabber_presence_create_js(JabberStream *js, JabberBuddyState state, const char *msg, int priority); void jabber_presence_parse(JabberStream *js, xmlnode *packet); diff -r bb996cc49073 -r 3d4ce9df0d48 libpurple/protocols/jabber/roster.c --- a/libpurple/protocols/jabber/roster.c Sun Nov 16 22:48:22 2008 +0000 +++ b/libpurple/protocols/jabber/roster.c Mon Nov 17 18:22:26 2008 +0000 @@ -261,7 +261,7 @@ if(!js->roster_parsed) { js->roster_parsed = TRUE; - jabber_presence_send(js->gc->account, NULL, FALSE); + jabber_presence_send(js->gc->account, NULL); } }