From 97909566df2a7c81e55d0e6b7d72aab8d7691691 Mon Sep 17 00:00:00 2001 From: djcb Date: Mon, 24 Jun 2013 22:42:18 +0300 Subject: [PATCH] * mu-contacts, mu-msg-file: better deal with contacts with control chars --- lib/mu-contacts.c | 28 +++++++++++++--------------- lib/mu-msg-file.c | 16 ++++++++-------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/lib/mu-contacts.c b/lib/mu-contacts.c index 4d7d5fd4..64792732 100644 --- a/lib/mu-contacts.c +++ b/lib/mu-contacts.c @@ -270,6 +270,17 @@ downcase_domain_maybe (const char *addr) return addr_conv; } +static void +clear_str (char* str) +{ + if (str) { + mu_str_remove_ctrl_in_place (str); + g_strstrip (str); + } +} + + + gboolean mu_contacts_add (MuContacts *self, const char *addr, const char *name, @@ -299,6 +310,8 @@ mu_contacts_add (MuContacts *self, const char *addr, const char *name, * empty*/ g_free (cinfo->_name); cinfo->_name = g_strdup (name); + if (cinfo->_name) + mu_str_remove_ctrl_in_place (cinfo->_name); } cinfo->_tstamp = tstamp; } @@ -454,21 +467,6 @@ mu_contacts_destroy (MuContacts *self) } - -static void -clear_str (char* str) -{ - /* replace ctrl chars with '_' */ - while (str && *str) { - if (iscntrl (*str)) - *str = '_'; - ++str; - } - - if (str) - g_strstrip (str); -} - /* note, we will *own* the name, email we get, and we'll free them in * the end... */ static ContactInfo * diff --git a/lib/mu-msg-file.c b/lib/mu-msg-file.c index 89302ca0..869dd74a 100644 --- a/lib/mu-msg-file.c +++ b/lib/mu-msg-file.c @@ -173,12 +173,11 @@ init_mime_msg (MuMsgFile *self, const char* path, GError **err) return TRUE; } - static char* get_recipient (MuMsgFile *self, GMimeRecipientType rtype) { - char *recip; - InternetAddressList *recips; + char *recip; + InternetAddressList *recips; recips = g_mime_message_get_recipients (self->_mime_msg, rtype); @@ -195,6 +194,9 @@ get_recipient (MuMsgFile *self, GMimeRecipientType rtype) return NULL; } + if (recip) + mu_str_remove_ctrl_in_place (recip); + return recip; } @@ -592,10 +594,11 @@ get_tags (MuMsgFile *self) } + static char* cleanup_maybe (const char *str, gboolean *do_free) { - char *cur, *s; + char *s; if (!str) return NULL; @@ -610,10 +613,7 @@ cleanup_maybe (const char *str, gboolean *do_free) } else s = (char*)str; - /* strip control chars */ - for (cur = s; *cur; ++cur) - if (iscntrl(*cur)) - *cur = ' '; + mu_str_remove_ctrl_in_place (s); return s; }