From c865d05f0f66f61975c69ae7acb4bc8878d3e47b Mon Sep 17 00:00:00 2001 From: Damon Chaplin Date: Wed, 11 Oct 2000 18:06:28 +0000 Subject: add support for 'X-' parameters. 2000-10-11 Damon Chaplin * src/libical/icalparameter.c (icalparameter_as_ical_string): (icalparameter_new_from_string): * src/libical/icalparser.c (icalparser_add_line): add support for 'X-' parameters. svn path=/trunk/; revision=5855 --- libical/src/libical/icalparameter.c | 8 +++++--- libical/src/libical/icalparser.c | 7 ++++++- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'libical/src') diff --git a/libical/src/libical/icalparameter.c b/libical/src/libical/icalparameter.c index c77c223f1c..5bbaff68ef 100644 --- a/libical/src/libical/icalparameter.c +++ b/libical/src/libical/icalparameter.c @@ -578,8 +578,7 @@ icalparameter* icalparameter_new_from_string(icalparameter_kind kind, char* val) case ICAL_X_PARAMETER: { - param = icalparameter_new(ICAL_FBTYPE_PARAMETER); - icalparameter_set_xvalue(param,val); + param = icalparameter_new_x(val); break; } @@ -657,7 +656,10 @@ icalparameter_as_ical_string (icalparameter* parameter) buf_ptr = buf; impl = (struct icalparameter_impl*)parameter; - kind_string = icalenum_parameter_kind_to_string(impl->kind); + if (impl->kind == ICAL_X_PARAMETER) + kind_string = impl->x_name; + else + kind_string = icalenum_parameter_kind_to_string(impl->kind); if (impl->kind == ICAL_NO_PARAMETER || impl->kind == ICAL_ANY_PARAMETER || diff --git a/libical/src/libical/icalparser.c b/libical/src/libical/icalparser.c index b4563e23c9..11a505244f 100644 --- a/libical/src/libical/icalparser.c +++ b/libical/src/libical/icalparser.c @@ -732,10 +732,15 @@ icalcomponent* icalparser_add_line(icalparser* parser, break; } - kind = icalenum_string_to_parameter_kind(name); + if (name[0] == 'X' && name[1] == '-') + kind = ICAL_X_PARAMETER; + else + kind = icalenum_string_to_parameter_kind(name); if (kind != ICAL_NO_PARAMETER){ param = icalparameter_new_from_string(kind,pvalue); + if (kind == ICAL_X_PARAMETER) + icalparameter_set_xname (param, name); } else { /* Error. Failed to parse the parameter*/ /* 'tail' defined above */ -- cgit v1.2.3