Branch: r14.0.x

3f26d326 2018-02-12 18:54:40 Michele Calgaro
Fixed FTBFS caused by migration to libical 3. The changes
are compatible with previous versions of libical.

Signed-off-by: Michele Calgaro <michele.calgaro@...>
(cherry picked from commit 8996740084e6d31d323cfeb1a269f8427ff3f6bf)
M libkcal/icalformatimpl.cpp
M libkcal/vcalformat.cpp
M libkpimexchange/core/utils.cpp
M tderesources/lib/webdavhandler.cpp
diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp
index 6e0b7f8..171fe8f 100644
--- a/libkcal/icalformatimpl.cpp
+++ b/libkcal/icalformatimpl.cpp
@@ -1932,9 +1932,6 @@
   t.second = 0;
 
   t.is_date = 1;
-
-  t.is_utc = 0;
-
   t.zone = 0;
 
   return t;
@@ -1954,7 +1951,6 @@
 
   t.is_date = 0;
   t.zone = icaltimezone_get_builtin_timezone ( mParent->timeZoneId().latin1() );
-  t.is_utc = 0;
 
  // _dumpIcaltime( t );
   /* The TQDateTime we get passed in is to be considered in the timezone of
@@ -1969,7 +1965,6 @@
       t.zone = tz;
       t = icaltime_convert_to_zone( t, utc );
     } else {
-      t.is_utc = 1;
       t.zone = utc;
     }
   }
@@ -1981,11 +1976,10 @@
 TQDateTime ICalFormatImpl::readICalDateTime( icalproperty *p, icaltimetype& t, icaltimezone* tz )
 {
 //   kdDebug(5800) << "ICalFormatImpl::readICalDateTime()" << endl;
-  if ( tz && t.is_utc == 0 ) { // Only use the TZ if time is not UTC.
+  if (tz && !icaltime_is_utc(t)) { // Only use the TZ if time is not UTC.
     // FIXME: We'll need to make sure to apply the appropriate TZ, not just
     //        the first one found.
-    t.is_utc = (tz == icaltimezone_get_utc_timezone())?1:0;
-    if (t.is_utc == 0) {
+    if (tz != icaltimezone_get_utc_timezone()) {
         icalparameter *param = p ? icalproperty_get_first_parameter(p, ICAL_TZID_PARAMETER) : 0;
         const char *tzid = param ? icalparameter_get_tzid(param) : 0;
         if ( !tzid )
diff --git a/libkcal/vcalformat.cpp b/libkcal/vcalformat.cpp
index 7733b27..f78ad2a 100644
--- a/libkcal/vcalformat.cpp
+++ b/libkcal/vcalformat.cpp
@@ -1341,9 +1341,7 @@
   //  struct icaltimetype tt = icaltime_from_timet( ictt.toTime_t(), false );
   //  return icaltime_utc_offset( tt, tzid.latin1() );
   int daylight;
-  struct icaltimetype tt = icaltime_from_timet( ictt.toTime_t(), false );
-  //source says this is DEPRECATED, but it doesn't say what to use instead
-  //how to handle failure from icaltimezone_get_builtin_timezone_from_tzid()?
+  struct icaltimetype tt = icaltime_from_timet_with_zone( ictt.toTime_t(), false, NULL);
   return icaltimezone_get_utc_offset(
     icaltimezone_get_builtin_timezone( tzid.latin1() ),
     &tt, &daylight );
diff --git a/libkpimexchange/core/utils.cpp b/libkpimexchange/core/utils.cpp
index 7e1cbad..4f0568c 100644
--- a/libkpimexchange/core/utils.cpp
+++ b/libkpimexchange/core/utils.cpp
@@ -56,7 +56,7 @@
   TQDateTime epoch;
   epoch.setTime_t( 0 );
   time_t v = epoch.secsTo( utc );
-  struct icaltimetype tt = icaltime_from_timet( v, 0 ); // 0: is_date=false
+  struct icaltimetype tt = icaltime_from_timet_with_zone( v, 0, NULL );
   int offset = icaltimezone_get_utc_offset(
     icaltimezone_get_builtin_timezone( timeZoneId.latin1() ),
     &tt, &daylight );
@@ -72,7 +72,7 @@
   TQDateTime epoch;
   epoch.setTime_t( 0 );
   time_t v = epoch.secsTo( zone );
-  struct icaltimetype tt = icaltime_from_timet( v, 0 ); // 0: is_date=false
+  struct icaltimetype tt = icaltime_from_timet_with_zone( v, 0, NULL );
   int offset = icaltimezone_get_utc_offset(
     icaltimezone_get_builtin_timezone( timeZoneId.latin1() ),
     &tt, &daylight );
diff --git a/tderesources/lib/webdavhandler.cpp b/tderesources/lib/webdavhandler.cpp
index fea7a0b..af5eb27 100644
--- a/tderesources/lib/webdavhandler.cpp
+++ b/tderesources/lib/webdavhandler.cpp
@@ -186,7 +186,7 @@
   TQDateTime epoch;
   epoch.setTime_t( 0 );
   time_t v = epoch.secsTo( zone );
-  struct icaltimetype tt = icaltime_from_timet( v, 0 ); // 0: is_date=false
+  struct icaltimetype tt = icaltime_from_timet_with_zone( v, 0, NULL );
   int offset = icaltimezone_get_utc_offset(
     icaltimezone_get_builtin_timezone( timeZoneId.latin1() ),
     &tt, &daylight );