Mercurial > pidgin.yaz
comparison src/protocols/bonjour/bonjour.c @ 13061:6332531e14a7
[gaim-migrate @ 15423]
Strip markup from Bonjour available and away messages. iChat doesn't
seem to support it.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 28 Jan 2006 22:47:28 +0000 |
parents | ec9b92104904 |
children | 41ec0316cd65 |
comparison
equal
deleted
inserted
replaced
13060:cb66695da326 | 13061:6332531e14a7 |
---|---|
27 #include <windows.h> | 27 #include <windows.h> |
28 #include <lm.h> | 28 #include <lm.h> |
29 #endif | 29 #endif |
30 | 30 |
31 #include "internal.h" | 31 #include "internal.h" |
32 | |
32 #include "account.h" | 33 #include "account.h" |
33 #include "accountopt.h" | 34 #include "accountopt.h" |
35 #include "debug.h" | |
36 #include "util.h" | |
34 #include "version.h" | 37 #include "version.h" |
35 #include "debug.h" | |
36 | 38 |
37 #include "bonjour.h" | 39 #include "bonjour.h" |
38 #include "dns_sd.h" | 40 #include "dns_sd.h" |
39 #include "jabber.h" | 41 #include "jabber.h" |
40 #include "buddy.h" | 42 #include "buddy.h" |
41 | 43 |
42 /* | 44 /* |
43 * TODO: Should implement an add_buddy callback that removes the buddy | 45 * TODO: Should implement an add_buddy callback that removes the buddy |
44 * from the local list. Bonjour manages buddies for you, and | 46 * from the local list. Bonjour manages buddies for you, and |
45 * adding someone locally by hand is stupid. | 47 * adding someone locally by hand is stupid. Or, maybe even better, |
48 * if a PRPL does not have an add_buddy callback then do not allow | |
49 * users to add buddies. | |
46 */ | 50 */ |
47 | 51 |
48 static char *default_firstname; | 52 static char *default_firstname; |
49 static char *default_lastname; | 53 static char *default_lastname; |
50 static char *default_hostname; | 54 static char *default_hostname; |
202 gboolean disconnected; | 206 gboolean disconnected; |
203 GaimStatusType *type; | 207 GaimStatusType *type; |
204 int primitive; | 208 int primitive; |
205 GaimPresence *presence; | 209 GaimPresence *presence; |
206 const char *message, *bonjour_status; | 210 const char *message, *bonjour_status; |
211 gchar *stripped; | |
207 | 212 |
208 gc = gaim_account_get_connection(account); | 213 gc = gaim_account_get_connection(account); |
209 bd = gc->proto_data; | 214 bd = gc->proto_data; |
210 disconnected = gaim_account_is_disconnected(account); | 215 disconnected = gaim_account_is_disconnected(account); |
211 type = gaim_status_get_type(status); | 216 type = gaim_status_get_type(status); |
213 presence = gaim_account_get_presence(account); | 218 presence = gaim_account_get_presence(account); |
214 | 219 |
215 message = gaim_status_get_attr_string(status, "message"); | 220 message = gaim_status_get_attr_string(status, "message"); |
216 if (message == NULL) | 221 if (message == NULL) |
217 message = ""; | 222 message = ""; |
223 stripped = gaim_markup_strip_html(message); | |
218 | 224 |
219 /* | 225 /* |
220 * The three possible status for Bonjour are | 226 * The three possible status for Bonjour are |
221 * -available ("avail") | 227 * -available ("avail") |
222 * -idle ("away") | 228 * -idle ("away") |
228 else if (gaim_presence_is_idle(presence)) | 234 else if (gaim_presence_is_idle(presence)) |
229 bonjour_status = "away"; | 235 bonjour_status = "away"; |
230 else | 236 else |
231 bonjour_status = "dnd"; | 237 bonjour_status = "dnd"; |
232 | 238 |
233 bonjour_dns_sd_send_status(bd->dns_sd_data, bonjour_status, message); | 239 bonjour_dns_sd_send_status(bd->dns_sd_data, bonjour_status, stripped); |
240 g_free(stripped); | |
234 } | 241 } |
235 | 242 |
236 static GList * | 243 static GList * |
237 bonjour_status_types(GaimAccount *account) | 244 bonjour_status_types(GaimAccount *account) |
238 { | 245 { |