static void change_status (icalcomponent *ical_comp, const char *address, icalparameter_partstat status) { icalproperty *prop; prop = find_attendee (ical_comp, address); if (prop) { icalparameter *param; icalproperty_remove_parameter (prop, ICAL_PARTSTAT_PARAMETER); param = icalparameter_new_partstat (status); icalproperty_add_parameter (prop, param); } else { icalparameter *param; prop = icalproperty_new_attendee (address); icalcomponent_add_property (ical_comp, prop); param = icalparameter_new_role (ICAL_ROLE_OPTPARTICIPANT); icalproperty_add_parameter (prop, param); param = icalparameter_new_partstat (status); icalproperty_add_parameter (prop, param); } }
NS_IMETHODIMP calIcalProperty::ClearXParameters() { int oldcount, paramcount = 0; do { oldcount = paramcount; icalproperty_remove_parameter(mProperty, ICAL_X_PARAMETER); paramcount = icalproperty_count_parameters(mProperty); } while (oldcount != paramcount); return NS_OK; }
NS_IMETHODIMP calIcalProperty::RemoveParameter(const nsACString ¶m) { icalparameter_kind paramkind = icalparameter_string_to_kind(PromiseFlatCString(param).get()); if (paramkind == ICAL_NO_PARAMETER || paramkind == ICAL_X_PARAMETER) return NS_ERROR_INVALID_ARG; icalproperty_remove_parameter(mProperty, paramkind); // XXX check ical errno return NS_OK; }