aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/calendar-pilot-sync.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/calendar-pilot-sync.c')
-rw-r--r--calendar/calendar-pilot-sync.c36
1 files changed, 20 insertions, 16 deletions
diff --git a/calendar/calendar-pilot-sync.c b/calendar/calendar-pilot-sync.c
index bbacd312eb..d0bd03ed75 100644
--- a/calendar/calendar-pilot-sync.c
+++ b/calendar/calendar-pilot-sync.c
@@ -47,9 +47,9 @@ int only_pilot_to_desktop = 0;
const struct poptOption calendar_sync_options [] = {
{ "pilot", 0, POPT_ARG_STRING, &pilot_port, 0,
N_("Specifies the port on which the Pilot is"), N_("PORT") },
- { "debug-attrs", 0, POPT_ARG_INT, &debug_attrs, 0,
+ { "debug-attrs", 0, POPT_ARG_NONE, &debug_attrs, 0,
N_("If you want to debug the attributes on records"), NULL },
- { "only-desktop", 0, POPT_ARG_INT, &only_desktop_to_pilot, 0,
+ { "only-desktop", 0, POPT_ARG_NONE, &only_desktop_to_pilot, 0,
N_("Only syncs from desktop to pilot"), NULL },
{ "only-pilot", 0, POPT_ARG_INT, &only_pilot_to_desktop, 0,
N_("Only syncs from pilot to desktop"), NULL },
@@ -331,7 +331,11 @@ sync_object_to_pilot (GNOME_Calendar_Repository repo, iCalObject *obj, int pilot
if (rec_len > 0)
unpack_Appointment (a, buffer, rec_len);
- }
+ } else {
+ attr = 0;
+ cat = 0;
+ }
+
/* a contains the appointment either cleared or with the data from the Pilot */
a->begin = *localtime (&obj->dtstart);
a->end = *localtime (&obj->dtend);
@@ -432,20 +436,14 @@ sync_object_to_pilot (GNOME_Calendar_Repository repo, iCalObject *obj, int pilot
attr &= ~dlpRecAttrSecret;
/*
- * Mark as archived. FIXME: is this the case?
- */
- attr |= dlpRecAttrArchived;
-
- /*
* Send the appointment to the pilot
*/
rec_len = pack_Appointment (a, buffer, sizeof (buffer));
attr &= ~dlpRecAttrDirty;
- printf ("Status=%d\n",
- dlp_WriteRecord (
+ dlp_WriteRecord (
pilot_fd, db, attr,
- obj->pilot_id, cat, buffer, rec_len, &new_id));
+ obj->pilot_id, cat, buffer, rec_len, &new_id);
GNOME_Calendar_Repository_update_pilot_id (repo, obj->uid, new_id, ICAL_PILOT_SYNC_NONE, &ev);
free_Appointment (a);
@@ -456,10 +454,15 @@ static void
sync_cal_to_pilot (GNOME_Calendar_Repository repo, Calendar *cal, int pilot_fd)
{
GList *l;
-
- for (l = cal->events; l; l = l->next){
+ int c = g_list_length (cal->events);
+ int i;
+
+ printf ("\n");
+ for (i = 0, l = cal->events; l; l = l->next, i++){
iCalObject *obj = l->data;
+ printf ("Syncing desktop to pilot: %d/%d\r", i + 1, c);
+ fflush (stdout);
if (obj->pilot_status != ICAL_PILOT_SYNC_MOD){
g_warning ("Strange, we were supposed to get only a dirty object");
continue;
@@ -467,6 +470,7 @@ sync_cal_to_pilot (GNOME_Calendar_Repository repo, Calendar *cal, int pilot_fd)
sync_object_to_pilot (repo, obj, pilot_fd);
}
+ printf ("\n");
}
static void
@@ -533,7 +537,7 @@ sync_pilot (GNOME_Calendar_Repository repo, int pilot_fd)
/* If the object was deleted, remove it from the database */
if (attr & dlpRecAttrDeleted){
- printf ("Deleteing\n");
+ printf ("Deleting\n");
delete_record (repo, id);
free_Appointment (&a);
continue;
@@ -591,9 +595,9 @@ main (int argc, char *argv [])
repository = locate_calendar_server ();
printf ("Done\n");
- printf ("Syncing...\n");
+ printf ("<Syncing>\n");
sync_pilot (repository, link);
- printf ("Done Syncing\n");
+ printf ("</Syncing>\n");
GNOME_Calendar_Repository_done (repository, &ev);