Mercurial > pidgin.yaz
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 |