[evolution-data-server] Use icaltzutil_set_exact_vtimezones_support(), if available



commit 2b2a126c538fd1376b4b35c88aa2b9388f511f1c
Author: Milan Crha <mcrha redhat com>
Date:   Wed Jan 20 21:52:35 2016 +0100

    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 aad7914..21d5153 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 0537a46..a0288ac 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 9e410f2..b244ff1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1549,19 +1549,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 ea7d952..76beda4 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>
@@ -84,6 +82,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 ();
 
  reload:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]