diff options
author | Veerapuram Varadhan <vvaradan@src.gnome.org> | 2007-01-08 23:14:25 +0800 |
---|---|---|
committer | Veerapuram Varadhan <vvaradan@src.gnome.org> | 2007-01-08 23:14:25 +0800 |
commit | a49955fbe8ad6169da6272330220f6fcc3d7f4d5 (patch) | |
tree | d88ac77c529abb9081e4cb34ada91151de05c73a /calendar/conduits/memo | |
parent | a97944b9bc34bbe9cf7aca46b17aac15cfc4b7f1 (diff) | |
download | gsoc2013-evolution-a49955fbe8ad6169da6272330220f6fcc3d7f4d5.tar.gz 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/conduits/memo')
-rw-r--r-- | calendar/conduits/memo/memo-conduit.c | 107 |
1 files changed, 102 insertions, 5 deletions
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; |