diff --git a/THANKS b/THANKS index 789fab43..42728b9c 100644 --- a/THANKS +++ b/THANKS @@ -1,4 +1,5 @@ The Geary team would like to thank the following contributors: Eric Gregory +Charles Lindsay diff --git a/src/client/ui/message-list-cell-renderer.vala b/src/client/ui/message-list-cell-renderer.vala index 39c75731..295126be 100644 --- a/src/client/ui/message-list-cell-renderer.vala +++ b/src/client/ui/message-list-cell-renderer.vala @@ -15,11 +15,11 @@ public class FormattedMessageData : Object { public FormattedMessageData(bool is_unread, string date, string from, string subject, string preview) { this.is_unread = is_unread; - this.date = "%s".printf(Geary.String.escape(date)); - this.from = "%s".printf(Geary.String.escape(from)); - this.subject = "%s".printf(Geary.String.escape(subject)); + this.date = "%s".printf(Geary.String.escape_to_markup(date)); + this.from = "%s".printf(Geary.String.escape_to_markup(from)); + this.subject = "%s".printf(Geary.String.escape_to_markup(subject)); this.body = "%s".printf( - Geary.String.escape(preview)); + Geary.String.escape_to_markup(preview)); } // Creates a formatted message data from an e-mail. @@ -37,9 +37,10 @@ public class FormattedMessageData : Object { } } + string from = (email.from.size > 0) ? email.from[0].get_short_address() : ""; + this(email.properties.is_unread(), Date.pretty_print(email.date.value), - email.from[0].get_short_address(), email.subject.value, - Geary.String.escape(make_preview(builder.str))); + from, email.subject.value, Geary.String.escape_to_markup(make_preview(builder.str))); } // Distills an e-mail body into a preview by removing extra spaces, html, etc. diff --git a/src/engine/rfc822/rfc822-mailbox-address.vala b/src/engine/rfc822/rfc822-mailbox-address.vala index 952f03ba..8b242275 100644 --- a/src/engine/rfc822/rfc822-mailbox-address.vala +++ b/src/engine/rfc822/rfc822-mailbox-address.vala @@ -69,7 +69,10 @@ public class Geary.RFC822.MailboxAddress { } public string to_rfc822_string() { - return get_full_address(); + return String.is_empty(name) + ? "<%s>".printf(address) + : "%s <%s>".printf(GMime.utils_quote_string(name), address) + ; } public string to_string() { diff --git a/src/engine/sqlite/email/sqlite-message-row.vala b/src/engine/sqlite/email/sqlite-message-row.vala index ee4f109a..e406a3b9 100644 --- a/src/engine/sqlite/email/sqlite-message-row.vala +++ b/src/engine/sqlite/email/sqlite-message-row.vala @@ -131,7 +131,7 @@ public class Geary.Sqlite.MessageRow : Geary.Sqlite.Row { return null; case 1: - return addrs[0].get_full_address(); + return addrs[0].to_rfc822_string(); default: StringBuilder builder = new StringBuilder(); @@ -139,7 +139,7 @@ public class Geary.Sqlite.MessageRow : Geary.Sqlite.Row { if (!String.is_empty(builder.str)) builder.append(", "); - builder.append(addr.get_full_address()); + builder.append(addr.to_rfc822_string()); } return builder.str; diff --git a/src/engine/util/util-string.vala b/src/engine/util/util-string.vala index 8c005440..45ceabd4 100644 --- a/src/engine/util/util-string.vala +++ b/src/engine/util/util-string.vala @@ -38,7 +38,7 @@ public inline bool ascii_equali(string a, string b) { return ascii_cmpi(a, b) == 0; } -public inline string escape(string? plain) { +public inline string escape_to_markup(string? plain) { return (!is_empty(plain) && plain.validate()) ? Markup.escape_text(plain) : ""; }