aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
authorVeerapuram Varadhan <vvaradan@src.gnome.org>2007-01-08 23:14:25 +0800
committerVeerapuram Varadhan <vvaradan@src.gnome.org>2007-01-08 23:14:25 +0800
commita49955fbe8ad6169da6272330220f6fcc3d7f4d5 (patch)
treed88ac77c529abb9081e4cb34ada91151de05c73a /calendar
parenta97944b9bc34bbe9cf7aca46b17aac15cfc4b7f1 (diff)
downloadgsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar
gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar.gz
gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar.bz2
gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar.lz
gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar.xz
gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar.zst
gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.zip
Fix for 389664 - Adding pilot-link 0.12 compatibility.
* Fix for 389664 - Adding pilot-link 0.12 compatibility. svn path=/trunk/; revision=33125
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog10
-rw-r--r--calendar/conduits/calendar/calendar-conduit.c106
-rw-r--r--calendar/conduits/memo/memo-conduit.c107
-rw-r--r--calendar/conduits/todo/todo-conduit.c96
4 files changed, 301 insertions, 18 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 562e2ddf27..b2cbdcd91d 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,13 @@
+2007-01-08 Veerapuram Varadhan <vvaradhan@novell.com>
+
+ Patch submitted by Nathan Owens <pianocomp81@yahoo.com> and
+ Jerry Yu <jijun.yu@sun.com>
+
+ * conduits/calendar/calendar-conduit.c:
+ * conduits/todo/todo-conduit.c:
+ * conduits/memo/memo-conduit.c:Add pilot-link 0.12
+ compatibility
+
2007-01-08 Matthew Barnes <mbarnes@redhat.com>
Fixes #383027
diff --git a/calendar/conduits/calendar/calendar-conduit.c b/calendar/conduits/calendar/calendar-conduit.c
index 99b9832bd7..56dacdab9d 100644
--- a/calendar/conduits/calendar/calendar-conduit.c
+++ b/calendar/conduits/calendar/calendar-conduit.c
@@ -413,6 +413,9 @@ static char *print_remote (GnomePilotRecord *remote)
{
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 @@ static char *print_remote (GnomePilotRecord *remote)
}
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 @@ local_record_to_pilot_record (ECalLocalRecord *local,
{
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 @@ local_record_to_pilot_record (ECalLocalRecord *local,
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 @@ local_record_from_comp (ECalLocalRecord *local, ECalComponent *comp, ECalConduit
* 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 @@ comp_from_remote_record (GnomePilotConduitSyncAbs *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
_("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);
diff --git a/calendar/conduits/memo/memo-conduit.c b/calendar/conduits/memo/memo-conduit.c
index 4ad5aab79b..7bd2e104c3 100644
--- a/calendar/conduits/memo/memo-conduit.c
+++ b/calendar/conduits/memo/memo-conduit.c
@@ -331,6 +331,9 @@ static char *print_remote (GnomePilotRecord *remote)
{
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 @@ static char *print_remote (GnomePilotRecord *remote)
}
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 @@ local_record_to_pilot_record (EMemoLocalRecord *local,
{
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 @@ local_record_to_pilot_record (EMemoLocalRecord *local,
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 @@ local_record_from_comp (EMemoLocalRecord *local, ECalComponent *comp, EMemoCondu
/* 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 @@ comp_from_remote_record (GnomePilotConduitSyncAbs *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
_("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;
diff --git a/calendar/conduits/todo/todo-conduit.c b/calendar/conduits/todo/todo-conduit.c
index 9a00d46364..31d84c173b 100644
--- a/calendar/conduits/todo/todo-conduit.c
+++ b/calendar/conduits/todo/todo-conduit.c
@@ -402,15 +402,30 @@ static char *print_remote (GnomePilotRecord *remote)
{
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 @@ local_record_to_pilot_record (EToDoLocalRecord *local,
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 );
@@ -608,9 +627,23 @@ local_record_to_pilot_record (EToDoLocalRecord *local,
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_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 @@ local_record_from_comp (EToDoLocalRecord *local, ECalComponent *comp, EToDoCondu
/* 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 @@ comp_from_remote_record (GnomePilotConduitSyncAbs *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
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 @@ pre_sync (GnomePilotConduit *conduit,
_("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);