* mu-contacts, mu-msg-file: better deal with contacts with control chars
This commit is contained in:
@ -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 *
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user