Mercurial > pidgin.yaz
diff 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 |
line wrap: on
line diff
--- a/libpurple/protocols/msn/switchboard.c Sun Nov 23 07:31:20 2008 +0000 +++ b/libpurple/protocols/msn/switchboard.c Sun Nov 23 09:40:48 2008 +0000 @@ -892,7 +892,7 @@ char *body_str; char *body_enc; char *body_final; - size_t body_len; + size_t body_len, new_len; const char *passport; const char *value; @@ -900,7 +900,7 @@ swboard = cmdproc->data; body = msn_message_get_bin_data(msg, &body_len); - body_str = g_strndup(body, body_len); + body_str = sanitize_utf(body, body_len, &new_len); body_enc = g_markup_escape_text(body_str, -1); g_free(body_str); @@ -959,13 +959,17 @@ } else { - serv_got_im(gc, passport, body_final, 0, time(NULL)); + char *yaz_body_final; + yaz_body_final = purple_strreplace(body_final, "\r\n", "<br>"); // replace 0D 0A with <br> + purple_debug_info("yaz msn", "yaz_body_final=%s\n", yaz_body_final); + serv_got_im(gc, passport, yaz_body_final, 0, time(NULL)); if (swboard->conv == NULL) { swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, passport, purple_connection_get_account(gc)); swboard->flag |= MSN_SB_FLAG_IM; } + g_free(yaz_body_final); } g_free(body_final);