From c85a6f125ae9bcab916c8d1771f623e46f6da6ff Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 20 Jan 2016 21:52:35 +0100 Subject: Use icaltzutil_set_exact_vtimezones_support(), if available This is a function introduced in libical 2.0.0, which influences the way libical timezones are returned. The interoperability mode means to turn exact timezones off, thus they are returned with RRULE, intead of "expanded". --- calendar/libedata-cal/e-data-cal-factory.c | 4 +++ calendar/libedata-cal/e-subprocess-cal-factory.c | 4 +++ configure.ac | 40 +++++++++++++++------- .../evolution-calendar-factory.c | 6 ++-- 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c index 57f897fa8..6e446f310 100644 --- a/calendar/libedata-cal/e-data-cal-factory.c +++ b/calendar/libedata-cal/e-data-cal-factory.c @@ -277,6 +277,10 @@ e_data_cal_factory_new (GCancellable *cancellable, ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN); #endif +#ifdef HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT + icaltzutil_set_exact_vtimezones_support (0); +#endif + /* XXX Pre-load all built-in timezones in libical. * * Built-in time zones in libical 0.43 are loaded on demand, diff --git a/calendar/libedata-cal/e-subprocess-cal-factory.c b/calendar/libedata-cal/e-subprocess-cal-factory.c index 0537a46da..a0288ac7b 100644 --- a/calendar/libedata-cal/e-subprocess-cal-factory.c +++ b/calendar/libedata-cal/e-subprocess-cal-factory.c @@ -144,6 +144,10 @@ e_subprocess_cal_factory_new (GCancellable *cancellable, ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN); #endif +#ifdef HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT + icaltzutil_set_exact_vtimezones_support (0); +#endif + /* XXX Pre-load all built-in timezones in libical. * * Built-in time zones in libical 0.43 are loaded on demand, diff --git a/configure.ac b/configure.ac index 9d9c31180..3ae8a4f54 100644 --- a/configure.ac +++ b/configure.ac @@ -1511,19 +1511,33 @@ dnl ***** AC_SUBST(EVOLUTION_CALENDAR_CFLAGS) AC_SUBST(EVOLUTION_CALENDAR_LIBS) - dnl **************************** - dnl Check for ical_set_unknown_token_handling_setting function - dnl **************************** - AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function]) - save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS - save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS" - AC_LINK_IFELSE([AC_LANG_PROGRAM( - [[#include ]], - [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])], - [AC_DEFINE(HAVE_ICAL_UNKNOWN_TOKEN_HANDLING, 1, [libical provides ical_set_unknown_token_handling_setting function]) ac_cv_have_iuth=yes],[ac_cv_have_iuth=no]) - CFLAGS=$save_cflags - LIBS=$save_libs - AC_MSG_RESULT([$ac_cv_have_iuth]) +dnl **************************** +dnl Check for ical_set_unknown_token_handling_setting function +dnl **************************** +AC_MSG_CHECKING([ical_set_unknown_token_handling_setting function]) +save_cflags=$CFLAGS; CFLAGS=$EVOLUTION_CALENDAR_CFLAGS +save_libs=$LIBS; LIBS="$EVOLUTION_CALENDAR_LIBS" +AC_LINK_IFELSE([AC_LANG_PROGRAM( + [[#include ]], + [[ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN)]])], + [AC_DEFINE(HAVE_ICAL_UNKNOWN_TOKEN_HANDLING, 1, [libical provides ical_set_unknown_token_handling_setting function]) ac_cv_have_iuth=yes],[ac_cv_have_iuth=no]) +CFLAGS=$save_cflags +LIBS=$save_libs +AC_MSG_RESULT([$ac_cv_have_iuth]) + +dnl **************************** +dnl Check for icaltzutil_set_exact_vtimezones_support function +dnl **************************** +AC_MSG_CHECKING([icaltzutil_set_exact_vtimezones_support function]) +save_cflags=$CFLAGS; CFLAGS="$EVOLUTION_DATA_SERVER_CFLAGS" +save_libs=$LIBS; LIBS="$EVOLUTION_DATA_SERVER_LIBS" +AC_LINK_IFELSE([AC_LANG_PROGRAM( + [[#include ]], + [[icaltzutil_set_exact_vtimezones_support (0)]])], + [AC_DEFINE(HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT, 1, [libical provides icaltzutil_set_exact_vtimezones_support function]) ac_cv_have_isevs=yes],[ac_cv_have_isevs=no]) +CFLAGS=$save_cflags +LIBS=$save_libs +AC_MSG_RESULT([$ac_cv_have_isevs]) dnl ****************************** dnl Google flags diff --git a/services/evolution-calendar-factory/evolution-calendar-factory.c b/services/evolution-calendar-factory/evolution-calendar-factory.c index 50ae308bc..49088a050 100644 --- a/services/evolution-calendar-factory/evolution-calendar-factory.c +++ b/services/evolution-calendar-factory/evolution-calendar-factory.c @@ -24,9 +24,7 @@ #include #endif -#ifdef HAVE_ICAL_UNKNOWN_TOKEN_HANDLING #include -#endif #include #include @@ -83,6 +81,10 @@ main (gint argc, ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN); #endif +#ifdef HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT + icaltzutil_set_exact_vtimezones_support (0); +#endif + e_gdbus_templates_init_main_thread (); server = e_data_cal_factory_new (NULL, &error); -- cgit v1.2.1