aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libical/icalderivedvalue.c.in
diff options
context:
space:
mode:
Diffstat (limited to 'libical/src/libical/icalderivedvalue.c.in')
-rw-r--r--libical/src/libical/icalderivedvalue.c.in102
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 */