comparison libpurple/protocols/msn/switchboard.c @ 27907:a64685485775

propagate from branch 'im.pidgin.pidgin' (head a4222a6a8081e1e41a29c5b01c09a31ed212eb60) to branch 'im.pidgin.pidgin.yaz' (head f037145e58bf0c248f0bfb71758c04c604be896b)
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sun, 23 Nov 2008 09:40:48 +0000
parents 3f80f211417e 6ecfc6b9667c
children 770f2f8a2c91
comparison
equal deleted inserted replaced
24439:3667342896ce 27907:a64685485775
890 MsnSwitchBoard *swboard; 890 MsnSwitchBoard *swboard;
891 const char *body; 891 const char *body;
892 char *body_str; 892 char *body_str;
893 char *body_enc; 893 char *body_enc;
894 char *body_final; 894 char *body_final;
895 size_t body_len; 895 size_t body_len, new_len;
896 const char *passport; 896 const char *passport;
897 const char *value; 897 const char *value;
898 898
899 gc = cmdproc->session->account->gc; 899 gc = cmdproc->session->account->gc;
900 swboard = cmdproc->data; 900 swboard = cmdproc->data;
901 901
902 body = msn_message_get_bin_data(msg, &body_len); 902 body = msn_message_get_bin_data(msg, &body_len);
903 body_str = g_strndup(body, body_len); 903 body_str = sanitize_utf(body, body_len, &new_len);
904 body_enc = g_markup_escape_text(body_str, -1); 904 body_enc = g_markup_escape_text(body_str, -1);
905 g_free(body_str); 905 g_free(body_str);
906 906
907 passport = msg->remote_user; 907 passport = msg->remote_user;
908 908
957 swboard->flag |= MSN_SB_FLAG_IM; 957 swboard->flag |= MSN_SB_FLAG_IM;
958 } 958 }
959 } 959 }
960 else 960 else
961 { 961 {
962 serv_got_im(gc, passport, body_final, 0, time(NULL)); 962 char *yaz_body_final;
963 yaz_body_final = purple_strreplace(body_final, "\r\n", "<br>"); // replace 0D 0A with <br>
964 purple_debug_info("yaz msn", "yaz_body_final=%s\n", yaz_body_final);
965 serv_got_im(gc, passport, yaz_body_final, 0, time(NULL));
963 if (swboard->conv == NULL) 966 if (swboard->conv == NULL)
964 { 967 {
965 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, 968 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
966 passport, purple_connection_get_account(gc)); 969 passport, purple_connection_get_account(gc));
967 swboard->flag |= MSN_SB_FLAG_IM; 970 swboard->flag |= MSN_SB_FLAG_IM;
968 } 971 }
972 g_free(yaz_body_final);
969 } 973 }
970 974
971 g_free(body_final); 975 g_free(body_final);
972 } 976 }
973 977