Updating branch refs/heads/master to 8d090cf81337fb2d72568e345fa9ac746aa79c25 (commit) from 60b57d7cca761b2df2fd968f4a0792b7443b4224 (commit)
commit 8d090cf81337fb2d72568e345fa9ac746aa79c25 Author: Christian Dywan <christ...@twotoasts.de> Date: Fri Jul 1 00:15:13 2011 +0200 Always fallback decoded strings to UTF-8 Trying to send erroneously encoded strings via DBus will abort because GLib.Variant aborts on malformed encoding. postler/postler-messages.vala | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala index d277de0..2157d1a 100644 --- a/postler/postler-messages.vala +++ b/postler/postler-messages.vala @@ -48,6 +48,18 @@ public class Postler.Messages : Gtk.TreeView { selected_message = null; } + static string fallback_to_utf8 (string text) { + var fallback = new StringBuilder.sized (text.size () * 2); + for (unowned string s = text; s.get_char () != 0 ; s = s.next_char ()) { + unichar character = s.get_char (); + if (character.iscntrl () || !character.validate ()) + fallback.append_unichar ('�'); + else + fallback.append_unichar (character); + } + return fallback.str; + } + static string escape_text (string text) { /* Like Markup.escape_text, but including UTF-8 validation */ var escaped = new StringBuilder.sized (text.size () * 2); @@ -367,7 +379,7 @@ public class Postler.Messages : Gtk.TreeView { piece = piece.replace ("\nq\n=", "?q?=").replace ("\nQ\n=", "?Q?="); decoded.append (decode_piece (piece, out charset)); } - return decoded.str; + return fallback_to_utf8 (decoded.str); } public void clear () { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits