From f1f1fddf17161222617ba7b658e5da8b671960fa Mon Sep 17 00:00:00 2001 From: erdgeist Date: Wed, 18 Mar 2009 21:08:35 +0100 Subject: Add a duration parser to libical wrapper --- lib/chaos_calendar/ical_occurrences.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib/chaos_calendar/ical_occurrences.c') diff --git a/lib/chaos_calendar/ical_occurrences.c b/lib/chaos_calendar/ical_occurrences.c index 6515451e..e59c1ed4 100644 --- a/lib/chaos_calendar/ical_occurrences.c +++ b/lib/chaos_calendar/ical_occurrences.c @@ -62,3 +62,15 @@ VALUE occurrences( VALUE dtstart, VALUE dtend, char *rrule ) { icalrecur_iterator_free(ritr); return occurr; } + +VALUE duration_to_fixnum( char * duration ) { + icalerror_clear_errno(); + icalerror_set_error_state( ICAL_MALFORMEDDATA_ERROR, ICAL_ERROR_NONFATAL); + + struct icaldurationtype dur_struct = icaldurationtype_from_string( duration ); + + if( icaldurationtype_is_bad_duration( dur_struct ) ) + rb_raise(rb_eArgError, "Malformed Duration"); + + return LONG2FIX(icaldurationtype_as_int( dur_struct )); +} -- cgit v1.3