summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.in.in22
-rw-r--r--libkcal/icalformatimpl.cpp6
2 files changed, 28 insertions, 0 deletions
diff --git a/configure.in.in b/configure.in.in
index cd92d3cb2..07e4c251f 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -121,6 +121,28 @@ if test $ac_cv_struct_tm_gmtoff = yes; then
AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if you have a tm_gmtoff member in struct tm])
fi
+dnl Check libical API version
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+cxx_flags_safe="$CXXFLAGS"
+cflags_safe="$CFLAGS"
+CXXFLAGS="$CXXFLAGS -I$ac_cv_sword_incdir"
+CFLAGS="$CFLAGS -I$ac_cv_sword_incdir"
+AC_MSG_CHECKING([for libical >= 0.46])
+AC_TRY_COMPILE([extern "C" {
+ #include <libical/ical.h>
+ #include <libical/icalparser.h>
+ #include <libical/icalrestriction.h>
+}
+],[icalattach *attach;
+ attach = icalattach_new_from_data ( (const char *)"TEST", 0, 0 );],
+[AC_MSG_RESULT(yes)
+AC_DEFINE(USE_LIBICAL_0_46,1,[yes])],
+AC_MSG_RESULT(no))
+CXXFLAGS="$cxx_flags_safe"
+CFLAGS="$cflags_safe"
+AC_LANG_RESTORE
+
AC_LANG_PUSH(C++)
AC_CACHE_CHECK(for stl coping with namespace std, ac_cv_var_stlnamespace,
AC_TRY_COMPILE([
diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp
index 613d492e9..d711dd1ac 100644
--- a/libkcal/icalformatimpl.cpp
+++ b/libkcal/icalformatimpl.cpp
@@ -42,6 +42,8 @@ extern "C" {
#include "icalformatimpl.h"
#include "compat.h"
+#include "config.h"
+
#define _ICAL_VERSION "2.0"
using namespace KCal;
@@ -666,7 +668,11 @@ icalproperty *ICalFormatImpl::writeAttachment( Attachment *att )
if ( att->isUri() ) {
attach = icalattach_new_from_url( att->uri().utf8().data() );
} else {
+#ifdef USE_LIBICAL_0_46
+ attach = icalattach_new_from_data ( (const char *)att->data(), 0, 0 );
+#else
attach = icalattach_new_from_data ( (unsigned char *)att->data(), 0, 0 );
+#endif
}
icalproperty *p = icalproperty_new_attach( attach );