[evolution-ews/gnome-40] I#151 - Calendar: Teams meeting may have invalid timezone information
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews/gnome-40] I#151 - Calendar: Teams meeting may have invalid timezone information
- Date: Wed, 28 Apr 2021 06:06:28 +0000 (UTC)
commit 1a82e44d979bc8d1045e2b6ce937fd0f96ace9cd
Author: Milan Crha <mcrha redhat com>
Date: Wed Apr 28 08:05:02 2021 +0200
I#151 - Calendar: Teams meeting may have invalid timezone information
Closes https://gitlab.gnome.org/GNOME/evolution-ews/-/issues/151
src/EWS/calendar/e-cal-backend-ews-utils.c | 17 +++++++++++++++--
src/EWS/calendar/e-cal-backend-ews.c | 4 ++++
2 files changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
index 7312f388..d9d016f6 100644
--- a/src/EWS/calendar/e-cal-backend-ews-utils.c
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
@@ -2264,10 +2264,23 @@ e_cal_backend_ews_get_datetime_with_zone (ETimezoneCache *timezone_cache,
if (!zone)
zone = e_timezone_cache_get_timezone (timezone_cache, tzid);
- if (!zone)
+ if (!zone) {
zone = vcalendar ? i_cal_component_get_timezone (vcalendar, tzid) : NULL;
- else
+
+ /* Workaround Teams bug - see https://gitlab.gnome.org/GNOME/evolution-ews/-/issues/151 */
+ if (!zone && vcalendar && strchr (tzid, ' ')) {
+ gchar *tmp;
+
+ tmp = g_strstrip (g_strdup (tzid));
+
+ if (tmp && *tmp)
+ zone = i_cal_component_get_timezone (vcalendar, tmp);
+
+ g_free (tmp);
+ }
+ } else {
g_object_ref (zone);
+ }
i_cal_time_set_timezone (dt, zone);
diff --git a/src/EWS/calendar/e-cal-backend-ews.c b/src/EWS/calendar/e-cal-backend-ews.c
index d43e7af1..5fa1f661 100644
--- a/src/EWS/calendar/e-cal-backend-ews.c
+++ b/src/EWS/calendar/e-cal-backend-ews.c
@@ -704,6 +704,10 @@ ecb_ews_item_to_component_sync (ECalBackendEws *cbews,
start_tzid = e_ews_item_get_start_tzid (item);
end_tzid = e_ews_item_get_end_tzid (item);
+ /* Workaround Teams bug - see
https://gitlab.gnome.org/GNOME/evolution-ews/-/issues/151 */
+ if (!start_tzid || !*start_tzid)
+ start_tzid = end_tzid;
+
ical_start_tzid = e_cal_backend_ews_tz_util_get_ical_equivalent (start_tzid);
ical_end_tzid = e_cal_backend_ews_tz_util_get_ical_equivalent (end_tzid);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]