+++ /dev/null
-Index: acinclude.m4
-===================================================================
-RCS file: /cvs/gnome/evolution/acinclude.m4,v
-retrieving revision 1.9
-diff -u -r1.9 acinclude.m4
---- acinclude.m4 12 Jun 2006 12:52:02 -0000 1.9
-+++ acinclude.m4 17 Nov 2006 07:29:48 -0000
-@@ -268,3 +268,119 @@
- AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
- AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL")
- ])
-+
-+# PILOT_LINK_CHECK
-+# Adds --with-pisock and determines the verion of the pisock
-+#
-+
-+AC_SUBST(PISOCK_CFLAGS)
-+AC_SUBST(PISOCK_LIBS)
-+
-+AC_DEFUN([PILOT_LINK_HOOK],[
-+ AC_ARG_WITH(pisock,
-+ [ --with-pisock Specify prefix for pisock files],[
-+ if test x$withval = xyes; then
-+ dnl Note that an empty true branch is not valid sh syntax.
-+ ifelse([$1], [], :, [$1])
-+ else
-+ PISOCK_CFLAGS="-I$withval/include"
-+ incdir="$withval/include"
-+ PISOCK_LIBS="-L$withval/lib -lpisock -lpisync"
-+ AC_MSG_CHECKING("for existance of $withval/lib/libpisock.so")
-+ if test -r $withval/lib/libpisock.so; then
-+ AC_MSG_RESULT(yes)
-+ else
-+ AC_MSG_ERROR([Unable to find libpisock. Try http://www.pilot-link.org.])
-+ fi
-+ fi
-+ ])
-+
-+ if test x$PISOCK_CFLAGS = x; then
-+ AC_CHECK_HEADER(pi-version.h, [incdir="/usr/include"], [
-+ AC_CHECK_HEADER(libpisock/pi-version.h, [PISOCK_CFLAGS="-I/usr/include/libpisock"
-+ piversion_include="libpisock/pi-version.h"
-+ incdir="/usr/include/libpisock"
-+ ], [
-+ AC_CHECK_HEADER($prefix/include/pi-version.h, [PISOCK_CFLAGS="-I$prefix/include/libpisock"
-+ piversion_include="$prefix/include/pi-version.h"
-+ if test x$PISOCK_LIBDIR = x; then
-+ incdir="$prefix/include"
-+ PISOCK_LIBS="-L$prefix/lib -lpisock -lpisync"
-+ fi ],
-+ AC_MSG_ERROR([Unable to find pi-version.h]))
-+ ])
-+ ])
-+ fi
-+
-+ if test "x$PISOCK_LIBS" = "x"; then
-+ AC_CHECK_LIB(pisock, pi_accept, [ PISOCK_LIBS="-lpisock -lpisync"],
-+ [ AC_MSG_ERROR([Unable to find libpisock. Try http://www.pilot-link.org.]) ])
-+ fi
-+
-+ AC_ARG_ENABLE(pilotlinktest,
-+ [ --enable-pilotlinktest Test for correct version of pilot-link],
-+ [testplversion=$enableval],
-+ [ testplversion=yes ]
-+ )
-+
-+ if test x$piversion_include = x; then
-+ piversion_include="pi-version.h"
-+ fi
-+
-+ pi_major=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_VERSION'|sed 's/#define PILOT_LINK_VERSION \([[0-9]]*\)/\1/'`
-+ pi_minor=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_MAJOR'|sed 's/#define PILOT_LINK_MAJOR \([[0-9]]*\)/\1/'`
-+ pi_micro=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_MINOR'|sed 's/#define PILOT_LINK_MINOR \([[0-9]]*\)/\1/'`
-+ pi_patch=`cat $incdir/pi-version.h|grep '#define PILOT_LINK_PATCH'|sed 's/#define PILOT_LINK_PATCH \"\(.*\)\"/\1/'`
-+
-+ PILOT_LINK_MAJOR="$pi_major"
-+ PILOT_LINK_MINOR="$pi_minor"
-+ PILOT_LINK_MICRO="$pi_micro"
-+ PILOT_LINK_PATCH="$pi_patch"
-+ PILOT_LINK_VERSION="$pi_major.$pi_minor.$pi_micro$pi_patch"
-+
-+ if test x$testplversion = xyes; then
-+ AC_MSG_CHECKING([for pilot-link version >= $1])
-+ pl_ma=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-+ pl_mi=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-+ pl_mc=`echo $1|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-+ CFLAGS_save="$CFLAGS"
-+ CFLAGS="$CFLAGS $PISOCK_CFLAGS"
-+ AC_TRY_RUN(
-+ [
-+ #include <$piversion_include>
-+ int main(int argc,char *argv[]) {
-+ if (PILOT_LINK_VERSION == $pl_ma) {
-+ if (PILOT_LINK_MAJOR == $pl_mi) {
-+ if (PILOT_LINK_MINOR >= $pl_mc) {
-+ return 0;
-+ }
-+ } else if (PILOT_LINK_MAJOR > $pl_mi) {
-+ return 0;
-+ }
-+ } else if (PILOT_LINK_VERSION > $pl_ma) {
-+ return 0;
-+ }
-+ return 1;
-+ }
-+ ],
-+ [AC_MSG_RESULT([yes (found $PILOT_LINK_VERSION)])],
-+ [AC_MSG_ERROR([pilot-link >= $1 required])],
-+ [AC_MSG_WARN([No action taken for crosscompile])]
-+ )
-+ CFLAGS="$CFLAGS_save"
-+ fi
-+
-+ unset piversion_include
-+ unset pi_verion
-+ unset pi_major
-+ unset pi_minor
-+ unset pi_patch
-+ unset incdir
-+ unset pl_mi
-+ unset pl_ma
-+ unset pl_ve
-+])
-+
-+AC_DEFUN([PILOT_LINK_CHECK],[
-+ PILOT_LINK_HOOK($1,[],nofailure)
-+])
-Index: configure.in
-===================================================================
-RCS file: /cvs/gnome/evolution/configure.in,v
-retrieving revision 1.920
-diff -u -r1.920 configure.in
---- configure.in 14 Nov 2006 17:45:52 -0000 1.920
-+++ configure.in 17 Nov 2006 07:29:48 -0000
-@@ -606,8 +606,22 @@
- fi
- fi
- AM_CONDITIONAL(ENABLE_PILOT_CONDUITS, test "x$enable_pilot_conduits" = "xyes")
--if test x$enable_pilot_conduits = xyes; then
-- msg_pilot=yes
-+dnl ******************************
-+dnl If pilot conduits are enabled, check version of pilot-link
-+dnl ******************************
-+ if test x$enable_pilot_conduits = xyes; then
-+ msg_pilot=yes
-+
-+ PILOT_LINK_CHECK(0.11.4)
-+ AC_SUBST(PILOT_LINK_MAJOR)
-+ AC_SUBST(PILOT_LINK_MINOR)
-+ AC_SUBST(PILOT_LINK_MICRO)
-+ AC_SUBST(PILOT_LINK_PATCH)
-+ AC_SUBST(PILOT_LINK_VERSION)
-+
-+ if test $PILOT_LINK_MINOR -ge 12; then
-+ AC_DEFINE(PILOT_LINK_0_12,,[Building against pilot-link 0.12.0 or greater])
-+ fi
- else
- msg_pilot=no
- fi
-Index: addressbook/conduit/address-conduit.c
-===================================================================
-RCS file: /cvs/gnome/evolution/addressbook/conduit/address-conduit.c,v
-retrieving revision 1.88
-diff -u -r1.88 address-conduit.c
---- addressbook/conduit/address-conduit.c 6 Dec 2005 08:43:37 -0000 1.88
-+++ addressbook/conduit/address-conduit.c 17 Nov 2006 07:29:48 -0000
-@@ -462,6 +462,9 @@
- {
- static char buff[ 4096 ];
- struct Address addr;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
-@@ -469,7 +472,21 @@
- }
-
- memset (&addr, 0, sizeof (struct Address));
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ unpack_Address (&addr, buffer, address_v1);
-+ pi_buffer_free(buffer);
-+#else
- unpack_Address (&addr, remote->record, remote->length);
-+#endif
-
- g_snprintf (buff, 4096, "['%s' '%s' '%s']",
- addr.entry[entryLastname] ?
-@@ -792,6 +809,9 @@
- {
- GnomePilotRecord p;
- static char record[0xffff];
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- g_assert (local->addr != NULL );
-
-@@ -804,9 +824,25 @@
- p.secret = local->local.secret;
-
- /* Generate pilot record structure */
-+
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return p;
-+ }
-+
-+ pack_Address (local->addr, buffer, address_v1);
-+
-+ p.record = g_new0(unsigned char, buffer->used);
-+ p.length = buffer->used;
-+ memcpy(p.record, buffer->data, buffer->used);
-+
-+ pi_buffer_free(buffer);
-+#else
- p.record = record;
- p.length = pack_Address (local->addr, p.record, 0xffff);
--
-+#endif
- return p;
- }
-
-@@ -834,16 +870,34 @@
- */
- if (local->local.ID != 0) {
- struct Address addr;
-- char record[0xffff];
- int cat = 0;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * record;
-+ record = pi_buffer_new(DLP_BUF_SIZE);
-+ if(record == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return;
-+ }
-+#else
-+ char record[0xffff];
-+#endif
-
- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
- ctxt->dbi->db_handle,
-+#ifdef PILOT_LINK_0_12
-+ local->local.ID, record,
-+ NULL, NULL, &cat) > 0) {
-+#else
- local->local.ID, &record,
- NULL, NULL, NULL, &cat) > 0) {
-+#endif
- local->local.category = cat;
- memset (&addr, 0, sizeof (struct Address));
-+#ifdef PILOT_LINK_0_12
-+ unpack_Address (&addr, record, address_v1);
-+#else
- unpack_Address (&addr, record, 0xffff);
-+#endif
- for (i = 0; i < 5; i++) {
- if (addr.entry[entryPhone1 + i])
- local->addr->entry[entryPhone1 + i] =
-@@ -858,6 +912,9 @@
- }
- free_Address (&addr);
- }
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_free (record);
-+#endif
- }
-
- local->addr->entry[entryFirstname] = e_pilot_utf8_to_pchar (e_contact_get_const (contact, E_CONTACT_GIVEN_NAME));
-@@ -1019,11 +1076,27 @@
- EContactField next_mail, next_home, next_work, next_fax;
- EContactField next_other, next_main, next_pager, next_mobile;
- int i;
--
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
- g_return_val_if_fail(remote!=NULL,NULL);
- memset (&address, 0, sizeof (struct Address));
-- unpack_Address (&address, remote->record, remote->length);
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return NULL;
-+ }
-
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return NULL;
-+ }
-+ unpack_Address (&address, buffer, address_v1);
-+ pi_buffer_free(buffer);
-+#else
-+ unpack_Address (&address, remote->record, remote->length);
-+#endif
- if (in_contact == NULL)
- contact = e_contact_new ();
- else
-@@ -1217,6 +1290,9 @@
- char *change_id;
- char *auth;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t *buffer;
-+#endif
-
- abs_conduit = GNOME_PILOT_CONDUIT_SYNC_ABS (conduit);
-
-@@ -1302,10 +1378,19 @@
- gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records);
- gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ return pi_set_error(dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ }
-+
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-+ DLP_BUF_SIZE, buffer);
-+#else
- buf = (unsigned char*)g_malloc (0xffff);
- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
- (unsigned char *)buf, 0xffff);
--
-+#endif
- if (len < 0) {
- WARN (_("Could not read pilot's Address application block"));
- WARN ("dlp_ReadAppBlock(...) = %d", len);
-@@ -1313,9 +1398,13 @@
- _("Could not read pilot's Address application block"));
- return -1;
- }
-+#ifdef PILOT_LINK_0_12
-+ unpack_AddressAppInfo (&(ctxt->ai), buffer->data, len);
-+ pi_buffer_free (buffer);
-+#else
- unpack_AddressAppInfo (&(ctxt->ai), buf, len);
- g_free (buf);
--
-+#endif
- check_for_slow_setting (conduit, ctxt);
- if (ctxt->cfg->sync_type == GnomePilotConduitSyncTypeCopyToPilot
- || ctxt->cfg->sync_type == GnomePilotConduitSyncTypeCopyFromPilot)
-Index: calendar/conduits/calendar/calendar-conduit.c
-===================================================================
-RCS file: /cvs/gnome/evolution/calendar/conduits/calendar/calendar-conduit.c,v
-retrieving revision 1.132
-diff -u -r1.132 calendar-conduit.c
---- calendar/conduits/calendar/calendar-conduit.c 23 Dec 2005 04:39:34 -0000 1.132
-+++ calendar/conduits/calendar/calendar-conduit.c 17 Nov 2006 07:29:48 -0000
-@@ -413,6 +413,9 @@
- {
- static char buff[ 4096 ];
- struct Appointment appt;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
-@@ -420,8 +423,22 @@
- }
-
- memset (&appt, 0, sizeof (struct Appointment));
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+
-+ unpack_Appointment (&appt, buffer, datebook_v1);
-+ pi_buffer_free(buffer);
-+#else
- unpack_Appointment (&appt, remote->record, remote->length);
--
-+#endif
- g_snprintf (buff, 4096, "[%ld %ld '%s' '%s']",
- mktime (&appt.begin),
- mktime (&appt.end),
-@@ -819,6 +836,9 @@
- {
- GnomePilotRecord p;
- static char record[0xffff];
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- g_assert (local->comp != NULL);
- g_assert (local->appt != NULL );
-@@ -830,9 +850,23 @@
- p.secret = local->local.secret;
-
- /* Generate pilot record structure */
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return p;
-+ }
-+
-+ pack_Appointment (local->appt, buffer, datebook_v1);
-+ p.record = g_new0(unsigned char, buffer->used);
-+ p.length = buffer->used;
-+ memcpy(p.record, buffer->data, buffer->used);
-+
-+ pi_buffer_free(buffer);
-+#else
- p.record = record;
- p.length = pack_Appointment (local->appt, p.record, 0xffff);
--
-+#endif
- return p;
- }
-
-@@ -867,22 +901,44 @@
- * we don't overwrite them
- */
- if (local->local.ID != 0) {
-+ int cat = 0;
-+#ifdef PILOT_LINK_0_12
-+ struct Appointment appt;
-+ pi_buffer_t * record;
-+
-+ record = pi_buffer_new(DLP_BUF_SIZE);
-+ if(record == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return;
-+ }
-+#else
- struct Appointment appt;
- char record[0xffff];
-- int cat = 0;
--
-+#endif
- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
- ctxt->dbi->db_handle,
-+#ifdef PILOT_LINK_0_12
-+ local->local.ID, record,
-+ NULL, NULL, &cat) > 0) {
-+#else
- local->local.ID, &record,
- NULL, NULL, NULL, &cat) > 0) {
-+#endif
- local->local.category = cat;
- memset (&appt, 0, sizeof (struct Appointment));
-+#ifdef PILOT_LINK_0_12
-+ unpack_Appointment (&appt, record, datebook_v1);
-+#else
- unpack_Appointment (&appt, record, 0xffff);
-+#endif
- local->appt->alarm = appt.alarm;
- local->appt->advance = appt.advance;
- local->appt->advanceUnits = appt.advanceUnits;
- free_Appointment (&appt);
- }
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_free (record);
-+#endif
- }
-
- /* STOP: don't replace these with g_strdup, since free_Appointment
-@@ -1140,12 +1196,28 @@
- GSList *edl = NULL;
- char *txt;
- int pos, i;
--
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
- g_return_val_if_fail (remote != NULL, NULL);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ return NULL;
-+ }
-+
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ return NULL;
-+ }
-+
-+ unpack_Appointment (&appt, buffer, datebook_v1);
-+ pi_buffer_free(buffer);
-+
-+#else
- memset (&appt, 0, sizeof (struct Appointment));
- unpack_Appointment (&appt, remote->record, remote->length);
--
-+#endif
- if (in_comp == NULL) {
- comp = e_cal_component_new ();
- e_cal_component_set_new_vtype (comp, E_CAL_COMPONENT_EVENT);
-@@ -1413,7 +1485,9 @@
- char *filename, *change_id;
- icalcomponent *icalcomp;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
--
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
- abs_conduit = GNOME_PILOT_CONDUIT_SYNC_ABS (conduit);
-
- LOG (g_message ( "---------------------------------------------------------\n" ));
-@@ -1521,10 +1595,21 @@
- gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records);
- gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return -1;
-+ }
-+
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-+ DLP_BUF_SIZE,
-+ buffer);
-+#else
- buf = (unsigned char*)g_malloc (0xffff);
- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
- (unsigned char *)buf, 0xffff);
--
-+#endif
- if (len < 0) {
- WARN (_("Could not read pilot's Calendar application block"));
- WARN ("dlp_ReadAppBlock(...) = %d", len);
-@@ -1532,6 +1617,11 @@
- _("Could not read pilot's Calendar application block"));
- return -1;
- }
-+#ifdef PILOT_LINK_0_12
-+ buf = g_new0 (unsigned char,buffer->used);
-+ memcpy(buf, buffer->data, buffer->used);
-+ pi_buffer_free(buffer);
-+#endif
- unpack_AppointmentAppInfo (&(ctxt->ai), buf, len);
- g_free (buf);
-
-Index: calendar/conduits/todo/todo-conduit.c
-===================================================================
-RCS file: /cvs/gnome/evolution/calendar/conduits/todo/todo-conduit.c,v
-retrieving revision 1.98
-diff -u -r1.98 todo-conduit.c
---- calendar/conduits/todo/todo-conduit.c 13 May 2006 07:58:02 -0000 1.98
-+++ calendar/conduits/todo/todo-conduit.c 17 Nov 2006 07:29:48 -0000
-@@ -402,15 +402,30 @@
- {
- static char buff[ 4096 ];
- struct ToDo todo;
--
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
- return buff;
- }
-
- memset (&todo, 0, sizeof (struct ToDo));
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ unpack_ToDo (&todo, buffer, todo_v1);
-+ pi_buffer_free(buffer);
-+#else
- unpack_ToDo (&todo, remote->record, remote->length);
--
-+#endif
- g_snprintf (buff, 4096, "[%d %ld %d %d '%s' '%s' %d]",
- todo.indefinite,
- mktime (&todo.due),
-@@ -594,7 +609,11 @@
- EToDoConduitContext *ctxt)
- {
- GnomePilotRecord p;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#else
- static char record[0xffff];
-+#endif
-
- g_assert (local->comp != NULL);
- g_assert (local->todo != NULL );
-@@ -607,10 +626,24 @@
- p.archived = local->local.archived;
- p.secret = local->local.secret;
-
-- /* Generate pilot record structure */
-+ /* Generate pilot record structure */
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return p;
-+ }
-+
-+ pack_ToDo (local->todo, buffer, todo_v1);
-+ p.record = g_new0(unsigned char, buffer->used);
-+ p.length = buffer->used;
-+ memcpy(p.record, buffer->data, buffer->used);
-+
-+ pi_buffer_free(buffer);
-+#else
- p.record = record;
- p.length = pack_ToDo (local->todo, p.record, 0xffff);
--
-+#endif
- return p;
- }
-
-@@ -696,15 +729,32 @@
-
- /* Don't overwrite the category */
- if (local->local.ID != 0) {
-- char record[0xffff];
- int cat = 0;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * record;
-+ record = pi_buffer_new(DLP_BUF_SIZE);
-+ if(record == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return;
-+ }
-+#else
-+ char record[0xffff];
-+#endif
-
- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
- ctxt->dbi->db_handle,
-+#ifdef PILOT_LINK_0_12
-+ local->local.ID, record,
-+ NULL, NULL, &cat) > 0) {
-+#else
- local->local.ID, &record,
- NULL, NULL, NULL, &cat) > 0) {
-+#endif
- local->local.category = cat;
- }
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_free(record);
-+#endif
- }
-
- /*
-@@ -860,11 +910,28 @@
- int priority;
- char *txt;
- char *category;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- g_return_val_if_fail (remote != NULL, NULL);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ return NULL;
-+ }
-+
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ return NULL;
-+ }
-+
-+ unpack_ToDo (&todo, buffer, todo_v1);
-+ pi_buffer_free(buffer);
-+#else
- memset (&todo, 0, sizeof (struct ToDo));
- unpack_ToDo (&todo, remote->record, remote->length);
-+#endif
-
- utc_zone = icaltimezone_get_utc_timezone ();
- now = icaltime_from_timet_with_zone (time (NULL), FALSE,
-@@ -1018,6 +1085,9 @@
- char *filename, *change_id;
- icalcomponent *icalcomp;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- abs_conduit = GNOME_PILOT_CONDUIT_SYNC_ABS (conduit);
-
-@@ -1104,10 +1174,20 @@
- g_message("num_records: %d\nadd_records: %d\nmod_records: %d\ndel_records: %d\n",
- num_records, add_records, mod_records, del_records);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return -1;
-+ }
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-+ DLP_BUF_SIZE,
-+ buffer);
-+#else
- buf = (unsigned char*)g_malloc (0xffff);
- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
- (unsigned char *)buf, 0xffff);
--
-+#endif
- if (len < 0) {
- WARN (_("Could not read pilot's ToDo application block"));
- WARN ("dlp_ReadAppBlock(...) = %d", len);
-@@ -1115,6 +1195,12 @@
- _("Could not read pilot's ToDo application block"));
- return -1;
- }
-+
-+#ifdef PILOT_LINK_0_12
-+ buf = g_new0 (unsigned char,buffer->used);
-+ memcpy(buf, buffer->data,buffer->used);
-+ pi_buffer_free(buffer);
-+#endif
- unpack_ToDoAppInfo (&(ctxt->ai), buf, len);
- g_free (buf);
-
-Index: calendar/conduits/memo/memo-conduit.c
-===================================================================
-RCS file: /cvs/gnome/evolution/calendar/conduits/memo/memo-conduit.c,v
-retrieving revision 1.1
-diff -u -r1.1 memo-conduit.c
---- calendar/conduits/memo/memo-conduit.c 19 Oct 2005 11:39:35 -0000 1.1
-+++ calendar/conduits/memo/memo-conduit.c 17 Nov 2006 07:29:48 -0000
-@@ -331,6 +331,9 @@
- {
- static char buff[ 64 ];
- struct Memo memo;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t *buffer;
-+#endif
-
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
-@@ -338,8 +341,22 @@
- }
-
- memset (&memo, 0, sizeof (struct Memo));
-- unpack_Memo (&memo, remote->record, remote->length);
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ sprintf (buff, "[NULL]");
-+ return buff;
-+ }
-+ unpack_Memo (&memo, buffer, memo_v1);
-
-+ pi_buffer_free(buffer);
-+#else
-+ unpack_Memo (&memo, remote->record, remote->length);
-+#endif
- g_snprintf (buff, 64, "['%s']",
- memo.text ?
- memo.text : "");
-@@ -452,6 +469,9 @@
- {
- GnomePilotRecord p;
- static char record[0xffff];
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- g_assert (local->comp != NULL);
- g_assert (local->memo != NULL );
-@@ -465,9 +485,23 @@
- p.secret = local->local.secret;
-
- /* Generate pilot record structure */
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return p;
-+ }
-+
-+ pack_Memo (local->memo, buffer, memo_v1);
-+ p.record = g_new0(unsigned char, buffer->used);
-+ p.length = buffer->used;
-+ memcpy(p.record, buffer->data, buffer->used);
-+
-+ pi_buffer_free(buffer);
-+#else
- p.record = record;
- p.length = pack_Memo (local->memo, p.record, 0xffff);
--
-+#endif
- return p;
- }
-
-@@ -568,16 +602,41 @@
-
- /* Don't overwrite the category */
- if (local->local.ID != 0) {
-+#ifdef PILOT_LINK_0_12
-+ struct Memo memo;
-+ pi_buffer_t * record;
-+#else
- char record[0xffff];
-+#endif
- int cat = 0;
-
-+#ifdef PILOT_LINK_0_12
-+ record = pi_buffer_new(DLP_BUF_SIZE);
-+ if(record == NULL){
-+ pi_set_error(ctxt->dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return;
-+ }
-+#endif
-+
- LOG(fprintf(stderr, "local_record_from_comp: calling dlp_ReadRecordById\n"));
- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
- ctxt->dbi->db_handle,
-+#ifdef PILOT_LINK_0_12
-+ local->local.ID, record,
-+ NULL, NULL, &cat) > 0) {
-+ local->local.category = cat;
-+ memset (&memo, 0, sizeof (struct Memo));
-+ unpack_Memo (&memo, record, memo_v1);
-+ local->memo->text = strdup (memo.text);
-+ free_Memo (&memo);
-+ }
-+ pi_buffer_free (record);
-+#else
- local->local.ID, &record,
- NULL, NULL, NULL, &cat) > 0) {
- local->local.category = cat;
-- }
-+ }
-+#endif
- LOG(fprintf(stderr, "local_record_from_comp: done calling dlp_ReadRecordById\n"));
- }
-
-@@ -704,11 +763,27 @@
- char *txt, *txt2, *txt3;
- char *category;
- int i;
--
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
- g_return_val_if_fail (remote != NULL, NULL);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ return NULL;
-+ }
-+
-+ if(pi_buffer_append(buffer, remote->record, remote->length)==NULL){
-+ return NULL;
-+ }
-+
-+ unpack_Memo (&memo, buffer, memo_v1);
-+ pi_buffer_free(buffer);
-+#else
- memset (&memo, 0, sizeof (struct Memo));
- unpack_Memo (&memo, remote->record, remote->length);
-+#endif
-
- utc_zone = icaltimezone_get_utc_timezone ();
- now = icaltime_from_timet_with_zone (time (NULL), FALSE,
-@@ -840,6 +915,9 @@
- char *filename, *change_id;
- icalcomponent *icalcomp;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
-+#ifdef PILOT_LINK_0_12
-+ pi_buffer_t * buffer;
-+#endif
-
- abs_conduit = GNOME_PILOT_CONDUIT_SYNC_ABS (conduit);
-
-@@ -929,10 +1007,21 @@
- g_message("num_records: %d\nadd_records: %d\nmod_records: %d\ndel_records: %d\n",
- num_records, add_records, mod_records, del_records);
-
-+#ifdef PILOT_LINK_0_12
-+ buffer = pi_buffer_new(DLP_BUF_SIZE);
-+ if(buffer == NULL){
-+ pi_set_error(dbi->pilot_socket, PI_ERR_GENERIC_MEMORY);
-+ return -1;
-+ }
-+
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-+ DLP_BUF_SIZE,
-+ buffer);
-+#else
- buf = (unsigned char*)g_malloc (0xffff);
- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
- (unsigned char *)buf, 0xffff);
--
-+#endif
- if (len < 0) {
- WARN (_("Could not read pilot's Memo application block"));
- WARN ("dlp_ReadAppBlock(...) = %d", len);
-@@ -940,7 +1029,15 @@
- _("Could not read pilot's Memo application block"));
- return -1;
- }
-+#ifdef PILOT_LINK_0_12
-+ buf = g_new0 (unsigned char,buffer->used);
-+ memcpy(buf, buffer->data, buffer->used);
-+ unpack_MemoAppInfo (&(ctxt->ai), buf, len);
-+ pi_buffer_free(buffer);
-+#else
- unpack_MemoAppInfo (&(ctxt->ai), buf, len);
-+#endif
-+
- g_free (buf);
-
- lastDesktopUniqueID = 128;