summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2016-01-20 21:52:35 +0100
committerMilan Crha <mcrha@redhat.com>2016-01-20 21:53:30 +0100
commitc85a6f125ae9bcab916c8d1771f623e46f6da6ff (patch)
tree7e549de370b968f941555328683deb6b1906b64f
parent04ce4be9daf2aaf2b6fa5b59fd19eb34a8299083 (diff)
downloadevolution-data-server-c85a6f125ae9bcab916c8d1771f623e46f6da6ff.tar.gz
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".
-rw-r--r--calendar/libedata-cal/e-data-cal-factory.c4
-rw-r--r--calendar/libedata-cal/e-subprocess-cal-factory.c4
-rw-r--r--configure.ac40
-rw-r--r--services/evolution-calendar-factory/evolution-calendar-factory.c6
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 <libical/ical.h>]],
- [[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 <libical/ical.h>]],
+ [[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 <libical/ical.h>]],
+ [[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 <gtk/gtk.h>
#endif
-#ifdef HAVE_ICAL_UNKNOWN_TOKEN_HANDLING
#include <libical/ical.h>
-#endif
#include <libedataserver/libedataserver.h>
#include <libedata-cal/libedata-cal.h>
@@ -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);