aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2009-10-11 12:26:09 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2009-10-11 12:26:09 +0100
commit4f103ea401bb6b1ed8963ea33d4924f95e10473b (patch)
tree6beebfaadd423c2cf58d71c979898719ee84e5af
parent4164e620b4f593a427a89d9292f4aef5c33e9def (diff)
Added handing of away states/messages of contacts.
-rw-r--r--protocols/purple/purple.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index 0a70b194..f1355e25 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -137,12 +137,6 @@ static PurpleCoreUiOps bee_core_uiops =
NULL,
purple_ui_init,
NULL,
-
- /* padding */
- NULL,
- NULL,
- NULL,
- NULL
};
static void prplcb_conn_progress( PurpleConnection *gc, const char *text, size_t step, size_t step_count )
@@ -220,9 +214,16 @@ static void prplcb_blist_update( PurpleBuddyList *list, PurpleBlistNode *node )
if( node->type == PURPLE_BLIST_BUDDY_NODE && ic != NULL )
{
- imcb_buddy_status( ic, bud->name,
- purple_presence_is_online( bud->presence ) ? OPT_LOGGED_IN : 0,
- NULL, NULL );
+ PurpleStatus *as;
+ int flags = 0;
+
+ flags |= purple_presence_is_online( bud->presence ) ? OPT_LOGGED_IN : 0;
+ flags |= purple_presence_is_available( bud->presence ) ? 0 : OPT_AWAY;
+
+ as = purple_presence_get_active_status( bud->presence );
+
+ imcb_buddy_status( ic, bud->name, flags, purple_status_get_name( as ),
+ purple_status_get_attr_string( as, "message" ) );
}
}