[evolution] Bug 790666 - Comma in Full Name breaks meeting organizer validity check
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug 790666 - Comma in Full Name breaks meeting organizer validity check
- Date: Wed, 29 Nov 2017 17:18:39 +0000 (UTC)
commit f654d4c9bf7ea5371dfadb07a2ae1267eb7d2029
Author: Milan Crha <mcrha redhat com>
Date: Wed Nov 29 18:18:31 2017 +0100
Bug 790666 - Comma in Full Name breaks meeting organizer validity check
src/calendar/gui/e-comp-editor-page-general.c | 14 +++++++++-----
src/calendar/gui/itip-utils.c | 21 +++++----------------
2 files changed, 14 insertions(+), 21 deletions(-)
---
diff --git a/src/calendar/gui/e-comp-editor-page-general.c b/src/calendar/gui/e-comp-editor-page-general.c
index 971acc8..bfba1d9 100644
--- a/src/calendar/gui/e-comp-editor-page-general.c
+++ b/src/calendar/gui/e-comp-editor-page-general.c
@@ -408,7 +408,8 @@ ecep_general_attendee_added_cb (EMeetingListView *meeting_list_view,
static gboolean
ecep_general_get_organizer (ECompEditorPageGeneral *page_general,
gchar **out_name,
- gchar **out_mailto)
+ gchar **out_mailto,
+ const gchar **out_error_message)
{
gchar *organizer_text;
gboolean valid = FALSE;
@@ -429,6 +430,8 @@ ecep_general_get_organizer (ECompEditorPageGeneral *page_general,
*out_name = g_strdup (str_name);
if (out_mailto)
*out_mailto = g_strconcat ("MAILTO:", itip_strip_mailto (str_address), NULL);
+ } else if (out_error_message) {
+ *out_error_message = _("Organizer address is not a valid user mail address");
}
g_object_unref (address);
@@ -820,7 +823,7 @@ ecep_general_fill_widgets (ECompEditorPage *page,
cn = icalparameter_get_cn (param);
if (cn && *cn) {
- value = g_strdup_printf ("%s <%s>", cn, itip_strip_mailto
(organizer));
+ value = camel_internet_address_format_address (cn, itip_strip_mailto
(organizer));
}
}
@@ -932,15 +935,16 @@ ecep_general_fill_component (ECompEditorPage *page,
gchar *organizer_name = NULL, *organizer_mailto = NULL;
guint32 flags;
gint ii, added_attendees = 0;
+ const gchar *error_message = NULL;
comp_editor = e_comp_editor_page_ref_editor (page);
flags = e_comp_editor_get_flags (comp_editor);
if ((flags & (E_COMP_EDITOR_FLAG_IS_NEW | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER)) != 0 &&
- !ecep_general_get_organizer (page_general, NULL, NULL)) {
+ !ecep_general_get_organizer (page_general, NULL, NULL, &error_message)) {
e_comp_editor_set_validation_error (comp_editor, page,
page_general->priv->organizer_combo_box,
- _("An organizer is required."));
+ error_message ? error_message : _("An organizer is required."));
g_clear_object (&comp_editor);
@@ -959,7 +963,7 @@ ecep_general_fill_component (ECompEditorPage *page,
/* Organizer */
if ((flags & (E_COMP_EDITOR_FLAG_IS_NEW | E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER)) != 0 &&
- ecep_general_get_organizer (page_general, &organizer_name, &organizer_mailto)) {
+ ecep_general_get_organizer (page_general, &organizer_name, &organizer_mailto, NULL)) {
const gchar *cal_email_address;
icalparameter *param;
diff --git a/src/calendar/gui/itip-utils.c b/src/calendar/gui/itip-utils.c
index 38dea7c..64a5436 100644
--- a/src/calendar/gui/itip-utils.c
+++ b/src/calendar/gui/itip-utils.c
@@ -185,12 +185,8 @@ itip_get_user_identities (ESourceRegistry *registry)
name = e_source_mail_identity_get_name (extension);
address = e_source_mail_identity_get_address (extension);
- if (address) {
- if (name && *name)
- g_ptr_array_add (identities, g_strdup_printf ("%s <%s>", name, address));
- else
- g_ptr_array_add (identities, g_strdup_printf ("%s", address));
- }
+ if (address)
+ g_ptr_array_add (identities, camel_internet_address_format_address (name, address));
aliases = e_source_mail_identity_dup_aliases (extension);
if (aliases && *aliases) {
@@ -208,10 +204,7 @@ itip_get_user_identities (ESourceRegistry *registry)
if (!alias_name || !*alias_name)
alias_name = name;
- if (alias_name && *alias_name)
- g_ptr_array_add (identities, g_strdup_printf ("%s <%s>",
alias_name, alias_address));
- else
- g_ptr_array_add (identities, g_strdup_printf ("%s",
alias_address));
+ g_ptr_array_add (identities, camel_internet_address_format_address
(alias_name, alias_address));
}
}
}
@@ -269,12 +262,8 @@ itip_get_fallback_identity (ESourceRegistry *registry)
name = e_source_mail_identity_get_name (mail_identity);
address = e_source_mail_identity_get_address (mail_identity);
- if (address != NULL) {
- if (name && *name)
- identity = g_strdup_printf ("%s <%s>", name, address);
- else
- identity = g_strdup_printf ("%s", address);
- }
+ if (address)
+ identity = camel_internet_address_format_address (name, address);
g_object_unref (source);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]