diff options
Diffstat (limited to 'calendar/pcs/calobj.c')
-rw-r--r-- | calendar/pcs/calobj.c | 374 |
1 files changed, 0 insertions, 374 deletions
diff --git a/calendar/pcs/calobj.c b/calendar/pcs/calobj.c deleted file mode 100644 index 8c5605c688..0000000000 --- a/calendar/pcs/calobj.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Calendar objects implementations. - * Copyright (C) 1998 the Free Software Foundation - * - * Authors: - * Miguel de Icaza (miguel@gnu.org) - * Federico Mena (federico@gimp.org) - */ -#include <string.h> -#include <glib.h> -#include "calobj.h" -#include "timeutil.h" -#include "versit/vcc.h" - -iCalObject * -ical_object_new (void) -{ - iCalObject *ico; - - ico = g_new0 (iCalObject, 1); - - ico->seq = -1; - ico->dtstamp = time (NULL); - - return ico; -} - -static void -default_alarm (iCalObject *ical, CalendarAlarm *alarm, char *def_mail, enum AlarmType type) -{ - alarm->enabled = 0; - alarm->type = type; - - if (type != ALARM_MAIL){ - alarm->count = 15; - alarm->units = ALARM_MINUTES; - } else { - printf ("uno!\n"); - alarm->count = 1; - alarm->units = ALARM_DAYS; - } - - if (type == ALARM_MAIL) - alarm->data = g_strdup (def_mail); - else - alarm->data = g_strdup (""); -} - -iCalObject * -ical_new (char *comment, char *organizer, char *summary) -{ - iCalObject *ico; - - ico = ical_object_new (); - - ico->comment = g_strdup (comment); - ico->organizer = g_strdup (organizer); - ico->summary = g_strdup (summary); - ico->class = g_strdup ("PUBLIC"); - - default_alarm (ico, &ico->dalarm, organizer, ALARM_DISPLAY); - default_alarm (ico, &ico->palarm, organizer, ALARM_PROGRAM); - default_alarm (ico, &ico->malarm, organizer, ALARM_MAIL); - default_alarm (ico, &ico->aalarm, organizer, ALARM_AUDIO); - - return ico; -} - -static void -my_free (gpointer data, gpointer user_dat_ignored) -{ - g_free (data); -} - -static void -list_free (GList *list) -{ - g_list_foreach (list, my_free, 0); - g_list_free (list); -} - -#define free_if_defined(x) if (x){ g_free (x); x = 0; } -#define lfree_if_defined(x) if (x){ list_free (x); x = 0; } -void -ical_object_destroy (iCalObject *ico) -{ - /* Regular strings */ - free_if_defined (ico->comment); - free_if_defined (ico->organizer); - free_if_defined (ico->summary); - free_if_defined (ico->uid); - free_if_defined (ico->status); - free_if_defined (ico->class); - free_if_defined (ico->url); - - /* Lists */ - lfree_if_defined (ico->exdate); - lfree_if_defined (ico->categories); - lfree_if_defined (ico->resources); - lfree_if_defined (ico->related); - lfree_if_defined (ico->attach); - - g_free (ico); -} - -GList * -set_list (char *str, char *sc) -{ - GList *list = 0; - char *s; - - for (s = strtok (str, sc); s; s = strtok (NULL, sc)) - list = g_list_prepend (list, g_strdup (s)); - - return list; -} - -#define is_a_prop_of(obj,prop) isAPropertyOf (obj,prop) -#define str_val(obj) fakeCString (vObjectUStringZValue (obj)) -#define has(obj,prop) (vo = isAPropertyOf (obj, prop)) - -/* FIXME: we need to load the recurrence properties */ -iCalObject * -ical_object_create_from_vobject (VObject *o, const char *object_name) -{ - time_t now = time (NULL); - iCalObject *ical; - VObject *vo; - VObjectIterator i; - - ical = g_new0 (iCalObject, 1); - - if (strcmp (object_name, VCEventProp) == 0) - ical->type = ICAL_EVENT; - else if (strcmp (object_name, VCTodoProp) == 0) - ical->type = ICAL_TODO; - else - return 0; - - /* uid */ - if (has (o, VCUniqueStringProp)) - ical->uid = g_strdup (str_val (vo)); - - /* seq */ - if (has (o, VCSequenceProp)) - ical->seq = atoi (str_val (vo)); - else - ical->seq = 0; - - /* dtstart */ - if (has (o, VCDTstartProp)) - ical->dtstart = time_from_isodate (str_val (vo)); - else - ical->dtstart = 0; - - /* dtend */ - if (has (o, VCDTendProp)) - ical->dtend = time_from_isodate (str_val (vo)); - else - ical->dtend = 0; - - /* dcreated */ - if (has (o, VCDCreatedProp)) - ical->created = time_from_isodate (str_val (vo)); - - /* completed */ - if (has (o, VCCompletedProp)) - ical->completed = time_from_isodate (str_val (vo)); - - /* last_mod */ - if (has (o, VCLastModifiedProp)) - ical->last_mod = time_from_isodate (str_val (vo)); - else - ical->last_mod = now; - - /* exdate */ - if (has (o, VCExpDateProp)) - ical->exdate = set_list (str_val (vo), ","); - - /* description/comment */ - if (has (o, VCDescriptionProp)) - ical->comment = g_strdup (str_val (vo)); - - /* summary */ - if (has (o, VCSummaryProp)) - ical->summary = g_strdup (str_val (vo)); - else - ical->summary = g_strdup (""); - - /* status */ - if (has (o, VCStatusProp)) - ical->status = g_strdup (str_val (vo)); - else - ical->status = g_strdup ("NEEDS ACTION"); - - if (has (o, VCClassProp)) - ical->class = g_strdup (str_val (vo)); - else - ical->class = "PUBLIC"; - - /* categories */ - if (has (o, VCCategoriesProp)) - ical->categories = set_list (str_val (vo), ","); - - /* resources */ - if (has (o, VCResourcesProp)) - ical->resources = set_list (str_val (vo), ";"); - - /* priority */ - if (has (o, VCPriorityProp)) - ical->priority = atoi (str_val (vo)); - - /* tranparency */ - if (has (o, VCTranspProp)) - ical->transp = atoi (str_val (vo)) ? ICAL_TRANSPARENT : ICAL_OPAQUE; - - /* related */ - if (has (o, VCRelatedToProp)) - ical->related = set_list (str_val (vo), ";"); - - /* attach */ - initPropIterator (&i, o); - while (moreIteration (&i)){ - vo = nextVObject (&i); - if (strcmp (vObjectName (vo), VCAttachProp) == 0) - ical->attach = g_list_prepend (ical->attach, g_strdup (str_val (vo))); - } - - /* url */ - if (has (o, VCURLProp)) - ical->url = g_strdup (str_val (vo)); - - /* FIXME: dalarm */ - if (has (o, VCDAlarmProp)) - ; - - /* FIXME: aalarm */ - if (has (o, VCAAlarmProp)) - ; - - /* FIXME: palarm */ - if (has (o, VCPAlarmProp)) - ; - - /* FIXME: malarm */ - if (has (o, VCMAlarmProp)) - ; - - /* FIXME: rdate */ - if (has (o, VCRDateProp)) - ; - - /* FIXME: rrule */ - if (has (o, VCRRuleProp)) - ; - - return ical; -} - -static char * -to_str (int num) -{ - static char buf [40]; - - sprintf (buf, "%d", num); - return buf; -} - -/* - * stores a GList in the property, using SEP as the value separator - */ -static void -store_list (VObject *o, char *prop, GList *values, char sep) -{ - GList *l; - int len; - char *result, *p; - - for (len = 0, l = values; l; l = l->next) - len += strlen (l->data) + 1; - - result = g_malloc (len); - for (p = result, l = values; l; l = l->next){ - int len = strlen (l->data); - - strcpy (p, l->data); - p [len] = sep; - p += len+1; - } - addPropValue (o, prop, result); - g_free (p); -} - -VObject * -ical_object_to_vobject (iCalObject *ical) -{ - VObject *o; - GList *l; - - if (ical->type == ICAL_EVENT) - o = newVObject (VCEventProp); - else - o = newVObject (VCTodoProp); - - /* uid */ - if (ical->uid) - addPropValue (o, VCUniqueStringProp, ical->uid); - - /* seq */ - addPropValue (o, VCSequenceProp, to_str (ical->seq)); - - /* dtstart */ - addPropValue (o, VCDTstartProp, isodate_from_time_t (ical->dtstart)); - - /* dtend */ - addPropValue (o, VCDTendProp, isodate_from_time_t (ical->dtend)); - - /* dcreated */ - addPropValue (o, VCDTendProp, isodate_from_time_t (ical->created)); - - /* completed */ - if (ical->completed) - addPropValue (o, VCDTendProp, isodate_from_time_t (ical->completed)); - - /* last_mod */ - addPropValue (o, VCLastModifiedProp, isodate_from_time_t (ical->last_mod)); - - /* exdate */ - if (ical->exdate) - store_list (o, VCExpDateProp, ical->exdate, ','); - - /* description/comment */ - if (ical->comment) - addPropValue (o, VCDescriptionProp, ical->comment); - - /* summary */ - if (ical->summary) - addPropValue (o, VCSummaryProp, ical->summary); - - /* status */ - addPropValue (o, VCStatusProp, ical->status); - - /* class */ - addPropValue (o, VCClassProp, ical->class); - - /* categories */ - if (ical->categories) - store_list (o, VCCategoriesProp, ical->categories, ','); - - /* resources */ - if (ical->categories) - store_list (o, VCCategoriesProp, ical->resources, ";"); - - /* priority */ - addPropValue (o, VCPriorityProp, to_str (ical->priority)); - - /* transparency */ - addPropValue (o, VCTranspProp, to_str (ical->transp)); - - /* related */ - store_list (o, VCRelatedToProp, ical->related, ";"); - - /* attach */ - for (l = ical->attach; l; l = l->next) - addPropValue (o, VCAttachProp, l->data); - - /* url */ - if (ical->url) - addPropValue (o, VCURLProp, ical->url); - - /* FIXME: alarms */ - return o; -} - |