From cae42eab20bb23e037dbe5eca9c38eee3da54c7e Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 30 Oct 2020 11:40:24 +0100 Subject: [PATCH] ECompEditor: Extract plain email address from backend property The code expects the property to be a plain email address, without the name and the other things, thus, in case the backend returns email address with the name, extract only the plain address out of it. --- src/calendar/gui/e-comp-editor.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/calendar/gui/e-comp-editor.c b/src/calendar/gui/e-comp-editor.c index 9c9b957642..94eda02a05 100644 --- a/src/calendar/gui/e-comp-editor.c +++ b/src/calendar/gui/e-comp-editor.c @@ -2936,6 +2936,27 @@ e_comp_editor_get_managed_widget (ECompEditor *comp_editor, return widget; } +static gchar * +e_comp_editor_extract_email_address (const gchar *email_address) +{ + CamelInternetAddress *addr; + const gchar *str_addr; + gchar *address; + + if (!email_address || !*email_address) + return NULL; + + addr = camel_internet_address_new (); + if (camel_address_unformat (CAMEL_ADDRESS (addr), email_address) == 1 && + camel_internet_address_get (addr, 0, NULL, &str_addr)) { + address = g_strdup (str_addr); + } else { + address = g_strdup (email_address); + } + + return address; +} + const gchar * e_comp_editor_get_alarm_email_address (ECompEditor *comp_editor) { @@ -2954,7 +2975,7 @@ e_comp_editor_set_alarm_email_address (ECompEditor *comp_editor, return; g_free (comp_editor->priv->alarm_email_address); - comp_editor->priv->alarm_email_address = g_strdup (alarm_email_address); + comp_editor->priv->alarm_email_address = e_comp_editor_extract_email_address (alarm_email_address); g_object_notify (G_OBJECT (comp_editor), "alarm-email-address"); } @@ -2977,7 +2998,7 @@ e_comp_editor_set_cal_email_address (ECompEditor *comp_editor, return; g_free (comp_editor->priv->cal_email_address); - comp_editor->priv->cal_email_address = g_strdup (cal_email_address); + comp_editor->priv->cal_email_address = e_comp_editor_extract_email_address (cal_email_address); g_object_notify (G_OBJECT (comp_editor), "cal-email-address"); }