Mercurial > pidgin
comparison libpurple/protocols/jabber/presence.c @ 27497:9a5a9a4e7626
Simplify the fake_to_self function.
The majority of the changes are indentation (since I don't expect
the jabber_buddy_find to fail, it's now a g_return_if_fail).
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 07 Jun 2009 06:17:29 +0000 |
parents | c8390dc125c1 |
children | 6d26258e9f1d |
comparison
equal
deleted
inserted
replaced
27496:e3c2c3e72d7a | 27497:9a5a9a4e7626 |
---|---|
57 xmlnode_set_attrib(presence, "to", chat_full_jid); | 57 xmlnode_set_attrib(presence, "to", chat_full_jid); |
58 jabber_send(chat->js, presence); | 58 jabber_send(chat->js, presence); |
59 g_free(chat_full_jid); | 59 g_free(chat_full_jid); |
60 } | 60 } |
61 | 61 |
62 void jabber_presence_fake_to_self(JabberStream *js, const PurpleStatus *gstatus) { | 62 void jabber_presence_fake_to_self(JabberStream *js, PurpleStatus *status) |
63 char *my_base_jid; | 63 { |
64 | 64 PurpleAccount *account; |
65 if(!js->user) | 65 const char *username; |
66 return; | 66 |
67 | 67 g_return_if_fail(js->user != NULL); |
68 my_base_jid = g_strdup_printf("%s@%s", js->user->node, js->user->domain); | 68 |
69 if(purple_find_buddy(js->gc->account, my_base_jid)) { | 69 account = purple_connection_get_account(js->gc); |
70 JabberBuddy *jb; | 70 username = purple_account_get_username(account); |
71 if (status == NULL) | |
72 status = purple_account_get_active_status(account); | |
73 | |
74 if (purple_find_buddy(account, username)) { | |
75 JabberBuddy *jb = jabber_buddy_find(js, username, TRUE); | |
71 JabberBuddyResource *jbr; | 76 JabberBuddyResource *jbr; |
72 if((jb = jabber_buddy_find(js, my_base_jid, TRUE))) { | 77 JabberBuddyState state; |
73 JabberBuddyState state; | 78 char *msg; |
74 char *msg; | 79 int priority; |
75 int priority; | 80 |
76 | 81 g_return_if_fail(jb != NULL); |
77 purple_status_to_jabber(gstatus, &state, &msg, &priority); | 82 |
78 | 83 purple_status_to_jabber(status, &state, &msg, &priority); |
79 if (state == JABBER_BUDDY_STATE_UNAVAILABLE || state == JABBER_BUDDY_STATE_UNKNOWN) { | 84 |
80 jabber_buddy_remove_resource(jb, js->user->resource); | 85 if (state == JABBER_BUDDY_STATE_UNAVAILABLE || |
81 } else { | 86 state == JABBER_BUDDY_STATE_UNKNOWN) { |
82 jabber_buddy_track_resource(jb, js->user->resource, priority, state, msg); | 87 jabber_buddy_remove_resource(jb, js->user->resource); |
83 } | 88 } else { |
84 if((jbr = jabber_buddy_find_resource(jb, NULL))) { | 89 jabber_buddy_track_resource(jb, js->user->resource, priority, |
85 purple_prpl_got_user_status(js->gc->account, my_base_jid, jabber_buddy_state_get_status_id(jbr->state), "priority", jbr->priority, jbr->status ? "message" : NULL, jbr->status, NULL); | 90 state, msg); |
86 } else { | 91 } |
87 purple_prpl_got_user_status(js->gc->account, my_base_jid, "offline", msg ? "message" : NULL, msg, NULL); | 92 |
88 } | 93 if ((jbr = jabber_buddy_find_resource(jb, NULL))) { |
89 | 94 purple_prpl_got_user_status(js->gc->account, username, jabber_buddy_state_get_status_id(jbr->state), "priority", jbr->priority, jbr->status ? "message" : NULL, jbr->status, NULL); |
90 g_free(msg); | 95 } else { |
91 } | 96 purple_prpl_got_user_status(js->gc->account, username, "offline", msg ? "message" : NULL, msg, NULL); |
92 } | 97 } |
93 g_free(my_base_jid); | 98 g_free(msg); |
99 } | |
94 } | 100 } |
95 | 101 |
96 void jabber_set_status(PurpleAccount *account, PurpleStatus *status) | 102 void jabber_set_status(PurpleAccount *account, PurpleStatus *status) |
97 { | 103 { |
98 PurpleConnection *gc; | 104 PurpleConnection *gc; |