Mercurial > pidgin
comparison src/protocols/msn/msg.c @ 10225:ecf3ce2e2ab1
[gaim-migrate @ 11357]
This is mostly a patch from Felipe Contreras that eliminates MSN switchboard
errors and fixes MSN buddy icon syncronization, with some tweaks by me.
Thank Felipe if it works, blame me if something broke.
I also fixed a couple of text markup escaping things, fixed a glib warning that
was bugging me, fix a rare SILC crash, and make gtkstatusselector.c compile
(but do nothing) with gtk < 2.4
committer: Tailor Script <tailor@pidgin.im>
| author | Stu Tomlinson <stu@nosnilmot.com> |
|---|---|
| date | Sun, 21 Nov 2004 17:48:09 +0000 |
| parents | 1a91e814e9d8 |
| children | 3016b1b32339 |
comparison
equal
deleted
inserted
replaced
| 10224:ef7f9e69f03e | 10225:ecf3ce2e2ab1 |
|---|---|
| 23 */ | 23 */ |
| 24 #include "msn.h" | 24 #include "msn.h" |
| 25 #include "msg.h" | 25 #include "msg.h" |
| 26 | 26 |
| 27 MsnMessage * | 27 MsnMessage * |
| 28 msn_message_new(void) | 28 msn_message_new(MsnMsgType type) |
| 29 { | 29 { |
| 30 MsnMessage *msg; | 30 MsnMessage *msg; |
| 31 | 31 |
| 32 msg = g_new0(MsnMessage, 1); | 32 msg = g_new0(MsnMessage, 1); |
| 33 msg->type = type; | |
| 33 | 34 |
| 34 msg->attr_table = g_hash_table_new_full(g_str_hash, g_str_equal, | 35 msg->attr_table = g_hash_table_new_full(g_str_hash, g_str_equal, |
| 35 g_free, g_free); | 36 g_free, g_free); |
| 36 | 37 |
| 37 msn_message_ref(msg); | 38 msn_message_ref(msg); |
| 43 msn_message_new_plain(const char *message) | 44 msn_message_new_plain(const char *message) |
| 44 { | 45 { |
| 45 MsnMessage *msg; | 46 MsnMessage *msg; |
| 46 char *message_cr; | 47 char *message_cr; |
| 47 | 48 |
| 48 msg = msn_message_new(); | 49 msg = msn_message_new(MSN_MSG_TEXT); |
| 49 msn_message_set_attr(msg, "User-Agent", "Gaim/" VERSION); | 50 msn_message_set_attr(msg, "User-Agent", "Gaim/" VERSION); |
| 50 msn_message_set_content_type(msg, "text/plain"); | 51 msn_message_set_content_type(msg, "text/plain"); |
| 51 msn_message_set_charset(msg, "UTF-8"); | 52 msn_message_set_charset(msg, "UTF-8"); |
| 52 msn_message_set_flag(msg, 'N'); | 53 msn_message_set_flag(msg, 'A'); |
| 53 msn_message_set_attr(msg, "X-MMS-IM-Format", | 54 msn_message_set_attr(msg, "X-MMS-IM-Format", |
| 54 "FN=MS%20Sans%20Serif; EF=; CO=0; PF=0"); | 55 "FN=MS%20Sans%20Serif; EF=; CO=0; PF=0"); |
| 55 | 56 |
| 56 message_cr = gaim_str_add_cr(message); | 57 message_cr = gaim_str_add_cr(message); |
| 57 msn_message_set_bin_data(msg, message_cr, strlen(message_cr)); | 58 msn_message_set_bin_data(msg, message_cr, strlen(message_cr)); |
| 63 MsnMessage * | 64 MsnMessage * |
| 64 msn_message_new_msnslp(void) | 65 msn_message_new_msnslp(void) |
| 65 { | 66 { |
| 66 MsnMessage *msg; | 67 MsnMessage *msg; |
| 67 | 68 |
| 68 msg = msn_message_new(); | 69 msg = msn_message_new(MSN_MSG_SLP); |
| 69 | 70 |
| 70 msn_message_set_attr(msg, "User-Agent", NULL); | 71 msn_message_set_attr(msg, "User-Agent", NULL); |
| 71 | 72 |
| 72 msg->msnslp_message = TRUE; | 73 msg->msnslp_message = TRUE; |
| 73 | 74 |
| 224 { | 225 { |
| 225 MsnMessage *msg; | 226 MsnMessage *msg; |
| 226 | 227 |
| 227 g_return_val_if_fail(cmd != NULL, NULL); | 228 g_return_val_if_fail(cmd != NULL, NULL); |
| 228 | 229 |
| 229 msg = msn_message_new(); | 230 msg = msn_message_new(MSN_MSG_UNKNOWN); |
| 230 | 231 |
| 231 msg->remote_user = g_strdup(cmd->params[0]); | 232 msg->remote_user = g_strdup(cmd->params[0]); |
| 232 /* msg->size = atoi(cmd->params[2]); */ | 233 /* msg->size = atoi(cmd->params[2]); */ |
| 233 msg->cmd = cmd; | 234 msg->cmd = cmd; |
| 234 | 235 |
| 608 } | 609 } |
| 609 | 610 |
| 610 g_strfreev(elems); | 611 g_strfreev(elems); |
| 611 | 612 |
| 612 return table; | 613 return table; |
| 614 } | |
| 615 | |
| 616 char * | |
| 617 msn_message_to_string(MsnMessage *msg) | |
| 618 { | |
| 619 size_t body_len; | |
| 620 const char *body; | |
| 621 | |
| 622 g_return_val_if_fail(msg != NULL, NULL); | |
| 623 g_return_val_if_fail(msg->type == MSN_MSG_TEXT, NULL); | |
| 624 | |
| 625 body = msn_message_get_bin_data(msg, &body_len); | |
| 626 | |
| 627 return g_strndup(body, body_len); | |
| 613 } | 628 } |
| 614 | 629 |
| 615 void | 630 void |
| 616 msn_message_show_readable(MsnMessage *msg, const char *info, | 631 msn_message_show_readable(MsnMessage *msg, const char *info, |
| 617 gboolean text_body) | 632 gboolean text_body) |
