diff options
-rw-r--r-- | design-data/components.txt | 2 | ||||
-rw-r--r-- | design-data/parameters.csv | 4 | ||||
-rw-r--r-- | design-data/params-in-prop.txt | 5 | ||||
-rw-r--r-- | design-data/properties.csv | 6 | ||||
-rw-r--r-- | design-data/restrictions.csv | 14 | ||||
-rw-r--r-- | src/libical/icalcomponent.c | 15 | ||||
-rw-r--r-- | src/libical/icalcomponent.h | 4 | ||||
-rw-r--r-- | src/libical/icalenums.h | 4 |
8 files changed, 52 insertions, 2 deletions
diff --git a/design-data/components.txt b/design-data/components.txt index 2d7603b0..09108903 100644 --- a/design-data/components.txt +++ b/design-data/components.txt @@ -9,6 +9,7 @@ VEVENT VFREEBUSY VJOURNAL VQUERY +VPATCH VPOLL VSCHEDULE VTIMEZONE @@ -22,6 +23,7 @@ XDISPLAYALARM XEMAILALARM XLICINVALID XMIMEPART +XPATCH XPROCEDUREALARM XSTANDARDTIME XVOTE diff --git a/design-data/parameters.csv b/design-data/parameters.csv index d4cd8ba9..cfa82c78 100644 --- a/design-data/parameters.csv +++ b/design-data/parameters.csv @@ -60,6 +60,8 @@ "FEATURE","48","icalparameter_feature",X=22100;AUDIO;CHAT;FEED;MODERATOR;PHONE;SCREEN;VIDEO;NONE=22199", "LABEL","49","const char*", "EMAIL","50","const char*", +"#VPATCH Extension Parameters","draft-daboo-icalendar-vpatch" +"PATCH-ACTION","51","icalparameter_patchaction",X=22200;CREATE;BYNAME;BYVALUE;BYPARAM;NONE=22299", "#NOTE for updaters. Preserve the icalparameter_kind Enum values to aid forward compatibility" "# New Enum values for an existing icalparameter_kind should be inserted before the corresponding NONE value" -"# New icalparamter_kind types should start their Enum value after the highest NONE value (currently 22199)" +"# New icalparamter_kind types should start their Enum value after the highest NONE value (currently 22299)" diff --git a/design-data/params-in-prop.txt b/design-data/params-in-prop.txt index 29d9b47b..d455e231 100644 --- a/design-data/params-in-prop.txt +++ b/design-data/params-in-prop.txt @@ -72,3 +72,8 @@ SOURCE X COLOR X IMAGE ALTREP DISPLAY ENCODING FMTTYPE VALUE X CONFERENCE FEATURE LABEL VALUE X +PATCH-VERSION X +PATCH-ORDER X +PATCH-TARGET X +PATCH-DELETE X +PATCH-PARAMETER ANY diff --git a/design-data/properties.csv b/design-data/properties.csv index 240d3b82..cb0eeb36 100644 --- a/design-data/properties.csv +++ b/design-data/properties.csv @@ -136,4 +136,10 @@ "COLOR","118","TEXT","TEXT" "IMAGE","119","ATTACH","NO",is_structured "CONFERENCE","120","URI","NO" +"#VPATCH Extension Properties", "draft-daboo_icalendar-vpatch Section 4", +"PATCH-VERSION","121","TEXT","TEXT" +"PATCH-ORDER","122","INTEGER","INTEGER" +"PATCH-TARGET","123","TEXT","TEXT" +"PATCH-DELETE","124","TEXT","TEXT" +"PATCH-PARAMETER","125","TEXT","TEXT" "#NOTE for updaters. Preserve the icalproperty_kind Enum values to aid forward compatibility" diff --git a/design-data/restrictions.csv b/design-data/restrictions.csv index 1fe121b9..8ac93764 100644 --- a/design-data/restrictions.csv +++ b/design-data/restrictions.csv @@ -1907,3 +1907,17 @@ NONE,XVOTE,NONE,VJOURNAL,ZERO NONE,XVOTE,NONE,VTODO,ZERO NONE,XVOTE,NONE,VVOTER,ZERO NONE,XVOTE,NONE,X,ZEROPLUS +NONE,VPATCH,DTSTAMP,NONE,ONE +NONE,VPATCH,UID,NONE,ONE +NONE,VPATCH,PATCHVERSION,NONE,ZEROORONE +NONE,VPATCH,PATCHORDER,NONE,ZEROORONE +NONE,VPATCH,X,NONE,ZEROPLUS +NONE,VPATCH,NONE,XPATCH,ONEPLUS +NONE,VPATCH,NONE,X,ZEROPLUS +NONE,XPATCH,PATCHTARGET,NONE,ONE +NONE,XPATCH,PATCHDELETE,NONE,ZEROPLUS +NONE,XPATCH,PATCHPARAMETER,NONE,ZEROPLUS +NONE,XPATCH,X,NONE,ZEROPLUS +NONE,XPATCH,NONE,VPATCH,ZERO +NONE,XPATCH,NONE,XPATCH,ZERO +NONE,XPATCH,NONE,X,ZEROPLUS diff --git a/src/libical/icalcomponent.c b/src/libical/icalcomponent.c index 498d8be1..d5eab7df 100644 --- a/src/libical/icalcomponent.c +++ b/src/libical/icalcomponent.c @@ -605,6 +605,7 @@ icalcomponent *icalcomponent_get_first_real_component(icalcomponent *c) kind == ICAL_VFREEBUSY_COMPONENT || kind == ICAL_VAVAILABILITY_COMPONENT || kind == ICAL_VPOLL_COMPONENT || + kind == ICAL_VPATCH_COMPONENT || kind == ICAL_VQUERY_COMPONENT || kind == ICAL_VAGENDA_COMPONENT) { return comp; } @@ -1177,6 +1178,10 @@ static const struct icalcomponent_kind_map component_map[] = { {ICAL_VVOTER_COMPONENT, "VVOTER"}, {ICAL_XVOTE_COMPONENT, "VOTE"}, + /* VPATCH components */ + {ICAL_VPATCH_COMPONENT, "VPATCH"}, + {ICAL_XPATCH_COMPONENT, "PATCH"}, + /* End of list */ {ICAL_NO_COMPONENT, ""}, }; @@ -1981,6 +1986,16 @@ icalcomponent *icalcomponent_new_xvote(void) return icalcomponent_new(ICAL_XVOTE_COMPONENT); } +icalcomponent *icalcomponent_new_vpatch(void) +{ + return icalcomponent_new(ICAL_VPATCH_COMPONENT); +} + +icalcomponent *icalcomponent_new_xpatch(void) +{ + return icalcomponent_new(ICAL_XPATCH_COMPONENT); +} + /* * Timezone stuff. */ diff --git a/src/libical/icalcomponent.h b/src/libical/icalcomponent.h index d35fa95d..84f4282e 100644 --- a/src/libical/icalcomponent.h +++ b/src/libical/icalcomponent.h @@ -307,4 +307,8 @@ LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vvoter(void); LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xvote(void); +LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vpatch(void); + +LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xpatch(void); + #endif /* !ICALCOMPONENT_H */ diff --git a/src/libical/icalenums.h b/src/libical/icalenums.h index 4cb76bad..b7b0f96d 100644 --- a/src/libical/icalenums.h +++ b/src/libical/icalenums.h @@ -61,7 +61,9 @@ typedef enum icalcomponent_kind ICAL_XAVAILABLE_COMPONENT, ICAL_VPOLL_COMPONENT, ICAL_VVOTER_COMPONENT, - ICAL_XVOTE_COMPONENT + ICAL_XVOTE_COMPONENT, + ICAL_VPATCH_COMPONENT, + ICAL_XPATCH_COMPONENT } icalcomponent_kind; /*********************************************************************** |