diff options
-rw-r--r-- | calendar/ChangeLog | 5 | ||||
-rw-r--r-- | calendar/calendar-pilot-sync.c | 14 | ||||
-rw-r--r-- | calendar/gui/calendar-pilot-sync.c | 14 |
3 files changed, 25 insertions, 8 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 8c074c5a53..6451265211 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,8 @@ +1999-08-01 Peter Teichman <pat4@acpub.duke.edu> + + * calendar-pilot-sync.c (sync_object_to_pilot): The multi-day + appointment corruption bug is dead. Whoo! + 1999-07-31 Peter Teichman <pat4@acpub.duke.edu> * Makefile.am: fixed this up slightly with respect to pilot conduits diff --git a/calendar/calendar-pilot-sync.c b/calendar/calendar-pilot-sync.c index 0b9d3b1206..12f15d33ad 100644 --- a/calendar/calendar-pilot-sync.c +++ b/calendar/calendar-pilot-sync.c @@ -396,14 +396,19 @@ sync_object_to_pilot (GNOME_Calendar_Repository repo, iCalObject *obj, int pilot if ((a->end.tm_mday != a->begin.tm_mday) || (a->end.tm_mon != a->begin.tm_mon) || (a->end.tm_year != a->begin.tm_year)){ + a->event = 1; + a->begin.tm_sec = 0; + a->begin.tm_min = 0; + a->begin.tm_hour = 0; + + a->end.tm_sec = 0; + a->end.tm_min = 0; + a->end.tm_hour = 0; a->repeatEnd = a->end; a->repeatForever = 0; - a->repeatFrequency = 0; + a->repeatFrequency = 1; a->repeatType = repeatDaily; - a->end.tm_mday = a->begin.tm_mday; - a->end.tm_mon = a->begin.tm_mon; - a->end.tm_year = a->begin.tm_year; } /* @@ -447,6 +452,7 @@ sync_object_to_pilot (GNOME_Calendar_Repository repo, iCalObject *obj, int pilot dlp_WriteRecord ( pilot_fd, db, 0, obj->pilot_id, 0, buffer, rec_len, &new_id); + GNOME_Calendar_Repository_update_pilot_id (repo, obj->uid, new_id, ICAL_PILOT_SYNC_NONE, &ev); free_Appointment (a); diff --git a/calendar/gui/calendar-pilot-sync.c b/calendar/gui/calendar-pilot-sync.c index 0b9d3b1206..12f15d33ad 100644 --- a/calendar/gui/calendar-pilot-sync.c +++ b/calendar/gui/calendar-pilot-sync.c @@ -396,14 +396,19 @@ sync_object_to_pilot (GNOME_Calendar_Repository repo, iCalObject *obj, int pilot if ((a->end.tm_mday != a->begin.tm_mday) || (a->end.tm_mon != a->begin.tm_mon) || (a->end.tm_year != a->begin.tm_year)){ + a->event = 1; + a->begin.tm_sec = 0; + a->begin.tm_min = 0; + a->begin.tm_hour = 0; + + a->end.tm_sec = 0; + a->end.tm_min = 0; + a->end.tm_hour = 0; a->repeatEnd = a->end; a->repeatForever = 0; - a->repeatFrequency = 0; + a->repeatFrequency = 1; a->repeatType = repeatDaily; - a->end.tm_mday = a->begin.tm_mday; - a->end.tm_mon = a->begin.tm_mon; - a->end.tm_year = a->begin.tm_year; } /* @@ -447,6 +452,7 @@ sync_object_to_pilot (GNOME_Calendar_Repository repo, iCalObject *obj, int pilot dlp_WriteRecord ( pilot_fd, db, 0, obj->pilot_id, 0, buffer, rec_len, &new_id); + GNOME_Calendar_Repository_update_pilot_id (repo, obj->uid, new_id, ICAL_PILOT_SYNC_NONE, &ev); free_Appointment (a); |