diff options
Diffstat (limited to 'libical/src/libical/icalderivedvalue.c.in')
-rw-r--r-- | libical/src/libical/icalderivedvalue.c.in | 102 |
1 files changed, 49 insertions, 53 deletions
diff --git a/libical/src/libical/icalderivedvalue.c.in b/libical/src/libical/icalderivedvalue.c.in index 3c4e73066b..d96461e2b7 100644 --- a/libical/src/libical/icalderivedvalue.c.in +++ b/libical/src/libical/icalderivedvalue.c.in @@ -3,7 +3,7 @@ FILE: icalvalue.c CREATOR: eric 02 May 1999 - $Id: icalderivedvalue.c.in,v 1.3 2002/10/16 21:41:39 rodrigo Exp $ + $Id: icalderivedvalue.c.in,v 1.4 2003/09/11 22:04:19 hansp Exp $ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org @@ -47,10 +47,6 @@ #include <stdlib.h> /* for atoi and atof */ #include <limits.h> /* for SHRT_MAX */ - - -#define TMP_BUF_SIZE 1024 - struct icalvalue_impl* icalvalue_new_impl(icalvalue_kind kind); /* This map associates each of the value types with its string @@ -60,9 +56,21 @@ struct icalvalue_kind_map { char name[20]; }; -extern struct icalvalue_kind_map value_map[]; +<insert_code_here> + + +int icalvalue_kind_is_valid(const icalvalue_kind kind) +{ + int i = 0; + do { + if (value_map[i].kind == kind) + return 1; + } while (value_map[i++].kind != ICAL_NO_VALUE); + + return 0; +} -const char* icalvalue_kind_to_string(icalvalue_kind kind) +const char* icalvalue_kind_to_string(const icalvalue_kind kind) { int i; @@ -96,12 +104,10 @@ icalvalue* icalvalue_new_x (const char* v){ icalvalue_set_x((icalvalue*)impl,v); return (icalvalue*)impl; } -void icalvalue_set_x(icalvalue* value, const char* v) { - struct icalvalue_impl* impl; - icalerror_check_arg_rv( (value!=0),"value"); +void icalvalue_set_x(icalvalue* impl, const char* v) { + icalerror_check_arg_rv( (impl!=0),"value"); icalerror_check_arg_rv( (v!=0),"v"); - impl = (struct icalvalue_impl*)value; if(impl->x_value!=0) {free((void*)impl->x_value);} impl->x_value = icalmemory_strdup(v); @@ -111,11 +117,11 @@ void icalvalue_set_x(icalvalue* value, const char* v) { } } -const char* icalvalue_get_x(icalvalue* value) { +const char* icalvalue_get_x(const icalvalue* value) { - icalerror_check_arg_rz( (value!=0),"value"); + icalerror_check_arg( (value!=0),"value"); icalerror_check_value_type(value, ICAL_X_VALUE); - return ((struct icalvalue_impl*)value)->x_value; + return value->x_value; } /* Recur is a special case, so it is not auto generated. */ @@ -130,15 +136,11 @@ icalvalue_new_recur (struct icalrecurrencetype v) } void -icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v) +icalvalue_set_recur(icalvalue* impl, struct icalrecurrencetype v) { - struct icalvalue_impl* impl; - - icalerror_check_arg_rv( (value!=0),"value"); + icalerror_check_arg_rv( (impl!=0),"value"); icalerror_check_value_type(value, ICAL_RECUR_VALUE); - impl = (struct icalvalue_impl*)value; - if (impl->data.v_recur != 0){ free(impl->data.v_recur); impl->data.v_recur = 0; @@ -156,12 +158,12 @@ icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v) } struct icalrecurrencetype -icalvalue_get_recur(icalvalue* value) +icalvalue_get_recur(const icalvalue* value) { icalerror_check_arg( (value!=0),"value"); icalerror_check_value_type(value, ICAL_RECUR_VALUE); - return *(((struct icalvalue_impl*)value)->data.v_recur); + return *(value->data.v_recur); } @@ -180,30 +182,24 @@ icalvalue_new_trigger (struct icaltriggertype v) void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v) { - struct icalvalue_impl* impl; - icalerror_check_arg_rv( (value!=0),"value"); - impl = (struct icalvalue_impl*)value; - if(!icaltime_is_null_time(v.time)){ - icalvalue_set_datetime((icalvalue*)impl,v.time); - impl->kind = ICAL_DATETIME_VALUE; + icalvalue_set_datetime(value,v.time); + value->kind = ICAL_DATETIME_VALUE; } else { - icalvalue_set_duration((icalvalue*)impl,v.duration); - impl->kind = ICAL_DURATION_VALUE; + icalvalue_set_duration(value,v.duration); + value->kind = ICAL_DURATION_VALUE; } - } struct icaltriggertype -icalvalue_get_trigger(icalvalue* value) +icalvalue_get_trigger(const icalvalue* impl) { - struct icalvalue_impl *impl = (struct icalvalue_impl*)value; struct icaltriggertype tr; - icalerror_check_arg( (value!=0),"value"); - icalerror_check_arg( (value!=0),"value"); + icalerror_check_arg( (impl!=0),"value"); + icalerror_check_arg( (impl!=0),"value"); if(impl->kind == ICAL_DATETIME_VALUE){ tr.duration = icaldurationtype_from_int(0); @@ -227,17 +223,15 @@ icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v) { struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIMEPERIOD_VALUE); - icalvalue_set_datetimeperiod((icalvalue*)impl,v); + icalvalue_set_datetimeperiod(impl,v); return (icalvalue*)impl; } void -icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v) +icalvalue_set_datetimeperiod(icalvalue* impl, struct icaldatetimeperiodtype v) { - struct icalvalue_impl* impl = (struct icalvalue_impl*)value; - - icalerror_check_arg_rv( (value!=0),"value"); + icalerror_check_arg_rv( (impl!=0),"value"); icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE); @@ -261,12 +255,11 @@ icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v) } struct icaldatetimeperiodtype -icalvalue_get_datetimeperiod(icalvalue* value) +icalvalue_get_datetimeperiod(const icalvalue* impl) { struct icaldatetimeperiodtype dtp; - struct icalvalue_impl* impl = (struct icalvalue_impl*)value; - icalerror_check_arg( (value!=0),"value"); + icalerror_check_arg( (impl!=0),"value"); icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE); if(impl->kind == ICAL_DATETIME_VALUE){ @@ -284,6 +277,8 @@ icalvalue_get_datetimeperiod(icalvalue* value) return dtp; } + + icalvalue * icalvalue_new_attach (icalattach *attach) { @@ -305,35 +300,36 @@ void icalvalue_set_attach (icalvalue *value, icalattach *attach) { struct icalvalue_impl *impl; - + icalerror_check_arg_rv ((value != NULL), "value"); icalerror_check_value_type (value, ICAL_ATTACH_VALUE); icalerror_check_arg_rv ((attach != NULL), "attach"); - + impl = (struct icalvalue_impl *) value; - + icalattach_ref (attach); if (impl->data.v_attach) icalattach_unref (impl->data.v_attach); - + impl->data.v_attach = attach; } icalattach * -icalvalue_get_attach (icalvalue *value) +icalvalue_get_attach (const icalvalue *value) { - struct icalvalue_impl *impl; - icalerror_check_arg_rz ((value != NULL), "value"); icalerror_check_value_type (value, ICAL_ATTACH_VALUE); - impl = (struct icalvalue_impl *) value; - - return impl->data.v_attach; + return value->data.v_attach; } + + + + + /* The remaining interfaces are 'new', 'set' and 'get' for each of the value types */ |