Am Dienstag 18 Oktober 2005 05:05 schrieb Nabil Sayegh:
> There is a 4th bug, that I didn't yet track down, but it only occurs in
> conjunction with korganizer, with the commandline tools it doesn't happen:
>
> A recurring event, that has been created on the device, will be duplicated
> on the device when it is synced with korganizer :(

Hi twogood,
Hi voc,

The problem is in syncekonnector:
uint32_t PimHandler::getOriginalId(const QString& p_id)
{
    QString id = p_id;
    bool ok;

    return id.remove("RRA-ID-").toUInt(&ok, 16);
}
But recurring events have UIDs like: 
BLOB0067=040000008200e00074c5b7101a82e0080000000043514f03d3a1993d9955a25b5aed3a59c7960a1bacdc398809cca520ebe4eeb3

However they don't contain the OriginalId (09003dd6 in that case), so it's not 
enough to remove the "BLOB0067=" part.

We need the originalId to be self contained inside the vevent, so that we can 
restore it, but what field can we use for it, so that it survives the various 
syncing apps?

Any idea?

For the moment everybody using syncekonnector should disable binary UIDs using 
the appended kludge.

P.S.: @twogood: pls don't forget to apply the other patches I submitted some 
days ago

rgds
-- 
 e-Trolley Sayegh & John, Nabil Sayegh
 Tel.: 0700 etrolley /// 0700 38765539
 Fax.: +49 69 8299381-8
 PGP : www.e-trolley.de
diff -uriwbB rra/lib/appointment.c rra-blob0067_uid_kludge/lib/appointment.c
--- rra/lib/appointment.c	2005-05-20 13:08:38.000000000 +0200
+++ rra-blob0067_uid_kludge/lib/appointment.c	2005-10-20 23:59:39.000000000 +0200
@@ -312,7 +312,7 @@
     if (!recurrence_generate_rrule(generator, event_generator_data.recurrence_pattern))
       synce_warning("Failed to generate RRULE from recurrence pattern.");
 
-    if (event_generator_data.unique)
+    if (event_generator_data.unique && id == RRA_APPOINTMENT_ID_UNKNOWN)
     {
       char* buffer = NULL;
       unsigned i;

Reply via email to