diff options
Diffstat (limited to 'calendar/cal-util')
-rw-r--r-- | calendar/cal-util/calobj.c | 14 | ||||
-rw-r--r-- | calendar/cal-util/calobj.h | 17 |
2 files changed, 25 insertions, 6 deletions
diff --git a/calendar/cal-util/calobj.c b/calendar/cal-util/calobj.c index 8504d7a95b..a5832e469d 100644 --- a/calendar/cal-util/calobj.c +++ b/calendar/cal-util/calobj.c @@ -103,7 +103,7 @@ ical_object_destroy (iCalObject *ico) g_free (ico); } -GList * +static GList * set_list (char *str, char *sc) { GList *list = 0; @@ -115,6 +115,12 @@ set_list (char *str, char *sc) return list; } +static void +load_recurrence (iCalObject *o, char *str) +{ + +} + #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)) @@ -246,13 +252,9 @@ ical_object_create_from_vobject (VObject *o, const char *object_name) if (has (o, VCMAlarmProp)) ; - /* FIXME: rdate */ - if (has (o, VCRDateProp)) - ; - /* FIXME: rrule */ if (has (o, VCRRuleProp)) - ; + load_recurrence (ical, str_val (vo)); return ical; } diff --git a/calendar/cal-util/calobj.h b/calendar/cal-util/calobj.h index 0fe85c6ca3..560c4ca99e 100644 --- a/calendar/cal-util/calobj.h +++ b/calendar/cal-util/calobj.h @@ -70,6 +70,21 @@ typedef enum { typedef char NotYet; +enum RecurType { + RECUR_DAILY, + RECUR_WEEKLY, + RECUR_MONTHLY_BY_POS, + RECUR_MONTHLY_BY_DAY, + RECUR_YEARLY_BY_MONTH, + RECUR_YEARLY_BY_DAY, +}; + +typedef struct { + enum RecurType type; + + int frequency; +} Recurrence; + /* * This describes an iCalendar object, note that we never store durations, instead we * always compute the end time computed from the start + duration. @@ -114,6 +129,8 @@ typedef struct { CalendarAlarm aalarm; CalendarAlarm palarm; CalendarAlarm malarm; + + Recurrence *recur; } iCalObject; iCalObject *ical_new (char *comment, char *organizer, char *summary); |