src/protocols/msn/msg.c

changeset 10225
0dfea1bc8695
parent 10112
3133c5f8eb10
child 10274
f329b1d7fd43
equal deleted inserted replaced
10224:71c4a2f741b2 10225:0dfea1bc8695
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)

mercurial