Mercurial > pidgin.yaz
comparison libpurple/protocols/silc/ops.c @ 32718:d9d33a4b5632
Salvage incoming SILC text if necessary.
Fixes #14636
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Fri, 30 Sep 2011 01:31:04 +0000 |
parents | 1cdae196aac8 |
children | 44fc11beefab |
comparison
equal
deleted
inserted
replaced
32607:88a46649de3d | 32718:d9d33a4b5632 |
---|---|
406 g_free(msg); | 406 g_free(msg); |
407 return; | 407 return; |
408 } | 408 } |
409 | 409 |
410 if (flags & SILC_MESSAGE_FLAG_UTF8) { | 410 if (flags & SILC_MESSAGE_FLAG_UTF8) { |
411 tmp = g_markup_escape_text((const char *)message, -1); | 411 const char *msg = (const char *)message; |
412 char *salvaged = NULL; | |
413 if (!g_utf8_validate((const char *)message, -1, NULL)) { | |
414 salvaged = purple_utf8_salvage((const char *)message); | |
415 msg = salvaged; | |
416 } | |
417 tmp = g_markup_escape_text(msg, -1); | |
412 /* Send to Purple */ | 418 /* Send to Purple */ |
413 serv_got_im(gc, sender->nickname, tmp, 0, time(NULL)); | 419 serv_got_im(gc, sender->nickname, tmp, 0, time(NULL)); |
420 g_free(salvaged); | |
414 g_free(tmp); | 421 g_free(tmp); |
415 } | 422 } |
416 } | 423 } |
417 | 424 |
418 | 425 |