vCalendar plugin: use external libical
authorPaul <paul@claws-mail.org>
Fri, 27 Jan 2017 15:56:47 +0000 (15:56 +0000)
committerPaul <paul@claws-mail.org>
Fri, 27 Jan 2017 15:56:47 +0000 (15:56 +0000)
closes bug #3764
patch by flo.xfce@gmx-topmail.de

79 files changed:
configure.ac
src/plugins/vcalendar/Makefile.am
src/plugins/vcalendar/icaltime_as_local.h
src/plugins/vcalendar/libical/LICENSE [deleted file]
src/plugins/vcalendar/libical/Makefile.am [deleted file]
src/plugins/vcalendar/libical/README [deleted file]
src/plugins/vcalendar/libical/design-data/Makefile.am [deleted file]
src/plugins/vcalendar/libical/design-data/parameters.csv [deleted file]
src/plugins/vcalendar/libical/design-data/properties.csv [deleted file]
src/plugins/vcalendar/libical/design-data/restrictions.csv [deleted file]
src/plugins/vcalendar/libical/design-data/status.txt [deleted file]
src/plugins/vcalendar/libical/design-data/value-types.csv [deleted file]
src/plugins/vcalendar/libical/libical/Makefile.am [deleted file]
src/plugins/vcalendar/libical/libical/icalattendee.c [deleted file]
src/plugins/vcalendar/libical/libical/icalattendee.h [deleted file]
src/plugins/vcalendar/libical/libical/icalcomponent.c [deleted file]
src/plugins/vcalendar/libical/libical/icalcomponent.h [deleted file]
src/plugins/vcalendar/libical/libical/icalderivedparameter.c.in [deleted file]
src/plugins/vcalendar/libical/libical/icalderivedparameter.h.in [deleted file]
src/plugins/vcalendar/libical/libical/icalderivedproperty.c.in [deleted file]
src/plugins/vcalendar/libical/libical/icalderivedproperty.h.in [deleted file]
src/plugins/vcalendar/libical/libical/icalderivedvalue.c.in [deleted file]
src/plugins/vcalendar/libical/libical/icalderivedvalue.h.in [deleted file]
src/plugins/vcalendar/libical/libical/icalduration.c [deleted file]
src/plugins/vcalendar/libical/libical/icalduration.h [deleted file]
src/plugins/vcalendar/libical/libical/icalenums.c [deleted file]
src/plugins/vcalendar/libical/libical/icalenums.h [deleted file]
src/plugins/vcalendar/libical/libical/icalerror.c [deleted file]
src/plugins/vcalendar/libical/libical/icalerror.h [deleted file]
src/plugins/vcalendar/libical/libical/icallangbind.c [deleted file]
src/plugins/vcalendar/libical/libical/icallangbind.h [deleted file]
src/plugins/vcalendar/libical/libical/icallexer.l [deleted file]
src/plugins/vcalendar/libical/libical/icalmemory.c [deleted file]
src/plugins/vcalendar/libical/libical/icalmemory.h [deleted file]
src/plugins/vcalendar/libical/libical/icalmime.c [deleted file]
src/plugins/vcalendar/libical/libical/icalmime.h [deleted file]
src/plugins/vcalendar/libical/libical/icalparameter.c [deleted file]
src/plugins/vcalendar/libical/libical/icalparameter.h [deleted file]
src/plugins/vcalendar/libical/libical/icalparameterimpl.h [deleted file]
src/plugins/vcalendar/libical/libical/icalparser.c [deleted file]
src/plugins/vcalendar/libical/libical/icalparser.h [deleted file]
src/plugins/vcalendar/libical/libical/icalperiod.c [deleted file]
src/plugins/vcalendar/libical/libical/icalperiod.h [deleted file]
src/plugins/vcalendar/libical/libical/icalproperty.c [deleted file]
src/plugins/vcalendar/libical/libical/icalproperty.h [deleted file]
src/plugins/vcalendar/libical/libical/icalrecur.c [deleted file]
src/plugins/vcalendar/libical/libical/icalrecur.h [deleted file]
src/plugins/vcalendar/libical/libical/icalrestriction.c.in [deleted file]
src/plugins/vcalendar/libical/libical/icalrestriction.h [deleted file]
src/plugins/vcalendar/libical/libical/icaltime.c [deleted file]
src/plugins/vcalendar/libical/libical/icaltime.h [deleted file]
src/plugins/vcalendar/libical/libical/icaltypes.c [deleted file]
src/plugins/vcalendar/libical/libical/icaltypes.h [deleted file]
src/plugins/vcalendar/libical/libical/icalvalue.c [deleted file]
src/plugins/vcalendar/libical/libical/icalvalue.h [deleted file]
src/plugins/vcalendar/libical/libical/icalvalueimpl.h [deleted file]
src/plugins/vcalendar/libical/libical/icalversion.h.in [deleted file]
src/plugins/vcalendar/libical/libical/icalyacc.y [deleted file]
src/plugins/vcalendar/libical/libical/pvl.c [deleted file]
src/plugins/vcalendar/libical/libical/pvl.h [deleted file]
src/plugins/vcalendar/libical/libical/sspm.c [deleted file]
src/plugins/vcalendar/libical/libical/sspm.h [deleted file]
src/plugins/vcalendar/libical/libical/vsnprintf.c [deleted file]
src/plugins/vcalendar/libical/scripts/Makefile.am [deleted file]
src/plugins/vcalendar/libical/scripts/mkderivedcomponents.pl [deleted file]
src/plugins/vcalendar/libical/scripts/mkderivedparameters.pl [deleted file]
src/plugins/vcalendar/libical/scripts/mkderivedproperties.pl [deleted file]
src/plugins/vcalendar/libical/scripts/mkderivedvalues.pl [deleted file]
src/plugins/vcalendar/libical/scripts/mkparameterrestrictions.pl [deleted file]
src/plugins/vcalendar/libical/scripts/mkrestrictionrecords.pl [deleted file]
src/plugins/vcalendar/libical/scripts/mkrestrictiontable.pl [deleted file]
src/plugins/vcalendar/libical/scripts/readvaluesfile.pl [deleted file]
src/plugins/vcalendar/vcal_dbus.c
src/plugins/vcalendar/vcal_folder.c
src/plugins/vcalendar/vcal_manager.c
src/plugins/vcalendar/vcal_manager.h
src/plugins/vcalendar/vcal_meeting_gtk.c
src/plugins/vcalendar/vcalendar.c
src/plugins/vcalendar/vcalendar.h

index 821ff46..b0683cf 100644 (file)
@@ -1096,7 +1096,7 @@ dnl S/Mime:               pgpcore libgpgme
 dnl Python:            Python
 dnl RSSyl:             expat libcurl
 dnl SpamReport:                libcurl
-dnl vCalendar:         libcurl
+dnl vCalendar:         libcurl, libical
 
 dnl libcurl ********************************************************************
 PKG_CHECK_MODULES(CURL, libcurl, HAVE_CURL=yes, HAVE_CURL=no)
@@ -1156,6 +1156,11 @@ PKG_CHECK_MODULES(GDATA, libgdata >= 0.17.2, HAVE_GDATA=yes, HAVE_GDATA=no)
 AC_SUBST(GDATA_CFLAGS)
 AC_SUBST(GDATA_LIBS)
 
+dnl libical ********************************************************************
+PKG_CHECK_MODULES(LIBICAL, libical >= 2.0, HAVE_LIBICAL=yes, HAVE_LIBICAL=no)
+AC_SUBST(LIBICAL_CFLAGS)
+AC_SUBST(LIBICAL_LIBS)
+
 dnl Poppler ********************************************************************
 PKG_CHECK_MODULES(POPPLER, poppler-glib >= 0.12.0, HAVE_POPPLER=yes, HAVE_POPPLER=no)
 AC_SUBST(POPPLER_LIBS)
@@ -1831,6 +1836,10 @@ if test x"$enable_vcalendar_plugin" != xno; then
                dependencies_missing="libcurl $dependencies_missing"
        fi
 
+  if test x"$HAVE_LIBICAL" = xno; then
+    dependencies_missing="libical $dependencies_missing"
+  fi
+
        if test x"$HAVE_PERL" = xno; then
                dependencies_missing="perl $dependencies_missing"
        fi
@@ -1935,11 +1944,6 @@ src/plugins/spamassassin/Makefile
 src/plugins/spam_report/Makefile
 src/plugins/tnef_parse/Makefile
 src/plugins/vcalendar/Makefile
-src/plugins/vcalendar/libical/Makefile
-src/plugins/vcalendar/libical/libical/icalversion.h
-src/plugins/vcalendar/libical/libical/Makefile
-src/plugins/vcalendar/libical/design-data/Makefile
-src/plugins/vcalendar/libical/scripts/Makefile
 doc/Makefile
 doc/man/Makefile
 tools/Makefile
index 3e1738f..0463aec 100644 (file)
@@ -3,15 +3,13 @@
 # terms of the General Public License version 3 (or later).
 # See COPYING file for license details.
 
-SUBDIRS = libical
 EXTRA_DIST = claws.def plugin.def version.rc
 
 IFLAGS = \
        -I$(top_srcdir)/src \
        -I$(top_srcdir)/src/common \
        -I$(top_builddir)/src/common \
-       -I$(top_srcdir)/src/gtk \
-       -I$(top_srcdir)/src/plugins/vcalendar/libical/libical
+       -I$(top_srcdir)/src/gtk
 
 if OS_WIN32
 
@@ -79,20 +77,21 @@ vcalendarinclude_HEADERS = \
 vcalendar_la_LDFLAGS = \
        $(plugin_res_ldflag) $(no_undefined) $(export_symbols) \
        -avoid-version -module \
-       $(GTK_LIBS)
+       $(GTK_LIBS) $(LIBICAL_LIBS)
 
 vcalendar_la_DEPENDENCIES = $(plugin_deps)
 
 vcalendar_la_LIBADD = $(plugin_ldadd) $(cygwin_export_lib) \
        $(GTK_LIBS) \
        $(CURL_LIBS) \
-        $(top_builddir)/src/plugins/vcalendar/libical/libical/libical.la
+  $(LIBICAL_LIBS)
 
 vcalendar_la_CPPFLAGS = \
        $(IFLAGS) \
        $(GLIB_CFLAGS) \
        $(GTK_CFLAGS) \
-       $(CURL_CFLAGS)
+       $(CURL_CFLAGS) \
+  $(LIBICAL_CFLAGS)
 
 clean-local:
        rm -f libclaws.a
index 302577f..812bc01 100644 (file)
@@ -1,14 +1,7 @@
 #ifndef __ICALTIME_AS_LOCAL_H__
 #define __ICALTIME_AS_LOCAL_H__
 #include <time.h>
-#include <ical.h>
-#undef PACKAGE_BUGREPORT        /* Why are they in ical.h? */
-#undef PACKAGE_NAME
-#undef PACKAGE_STRING
-#undef PACKAGE_TARNAME
-#undef PACKAGE_VERSION
-#undef PACKAGE
-#undef VERSION
+#include <libical/ical.h>
 
 #if !HAVE_ICALTIME_AS_LOCAL
 
diff --git a/src/plugins/vcalendar/libical/LICENSE b/src/plugins/vcalendar/libical/LICENSE
deleted file mode 100644 (file)
index e0e420a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-libical is distributed under two licenses.
-You may choose the terms of either:
-
- * The Mozilla Public License (MPL) v1.0
- or
- * The GNU Library General Public License (LGPL) v2.1
-
-----------------------------------------------------------------------
-
-Software distributed under these licenses is distributed on an "AS
-IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-implied. See the License for the specific language governing rights
-and limitations under the License.
-Libical is distributed under both the LGPL and the MPL. The MPL
-notice, reproduced below, covers the use of either of the licenses. 
-
-----------------------------------------------------------------------
-
-IMPORTANT: This is not the complete libical library, just the parts
-required for vCalendar plugin of Claws Mail and further bugfixes.
-For the complete libical package please visit:
-  http://sourceforge.net/projects/freeassociation/
-
-Modifications required for the Claws Mail project are:
-Copyright 1999-2007 Colin Leroy and the Claws Mail team.
-See COPYING file on toplevel directory for details.
diff --git a/src/plugins/vcalendar/libical/Makefile.am b/src/plugins/vcalendar/libical/Makefile.am
deleted file mode 100644 (file)
index 291081b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright 1999-2014 the Claws Mail team.
-# This file is part of Claws Mail package, and distributed under the
-# terms of the General Public License version 3 (or later).
-# See COPYING file for license details.
-
-SUBDIRS = libical design-data scripts
diff --git a/src/plugins/vcalendar/libical/README b/src/plugins/vcalendar/libical/README
deleted file mode 100644 (file)
index 46c1500..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-LIBICAL -- an implementation of iCalendar protocols and data formats
-
-Most of the code in here was written by Eric Busboom with help from
-dozens of contributors.  It is currently maintained by Art Cancro
-and Wilfried Goesgens.
-
-libical is available for you to use under your choice of the Mozilla
-Public License (MPL) v1.0 or the GNU Library General Public License
-(LGPL) v2.1.
-
-This dual license ensures that the library can be incorporated into
-both proprietary code and GPL'd programs, and will benefit from
-improvements made by programmers in both realms.  We will only accept
-changes into the library if they are similarly dual-licensed.
-
-Portions of this distribution are Copyright (c) 1997 Theo de
-Raadt.  See the header for libical/vsnprintf.c for the full
-copyright statement.
-
-IMPORTANT: This is not the complete libical library, just the parts
-required for vCalendar plugin of Claws Mail and further bugfixes.
-For the complete libical package please visit:
-  http://sourceforge.net/projects/freeassociation/
diff --git a/src/plugins/vcalendar/libical/design-data/Makefile.am b/src/plugins/vcalendar/libical/design-data/Makefile.am
deleted file mode 100644 (file)
index 312e61f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 1999-2014 the Claws Mail team.
-# This file is part of Claws Mail package, and distributed under the
-# terms of the General Public License version 3 (or later).
-# See COPYING file for license details.
-
-EXTRA_DIST =\
- properties.csv \
- parameters.csv \
- restrictions.csv \
- status.txt \
- value-types.csv
diff --git a/src/plugins/vcalendar/libical/design-data/parameters.csv b/src/plugins/vcalendar/libical/design-data/parameters.csv
deleted file mode 100644 (file)
index 0adbbe5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-"#Name ","C Type","Enumeration Values"
-"ALTREP","const char*",
-"CHARSET", "const char *",
-"CN","const char*",
-"CUTYPE","icalparameter_cutype","INDIVIDUAL;GROUP;RESOURCE;ROOM;UNKNOWN"
-"DELEGATED-FROM","const char*",
-"DELEGATED-TO","const char*",
-"DIR","const char*",
-"ENCODING","icalparameter_encoding","8BIT;BASE64"
-"FBTYPE","icalparameter_fbtype","FREE;BUSY;BUSYUNAVAILABLE;BUSYTENTATIVE"
-"FMTTYPE","const char*",
-"LANGUAGE","const char*",
-"MEMBER","const char*",
-"PARTSTAT","icalparameter_partstat","NEEDS-ACTION;ACCEPTED;DECLINED;TENTATIVE;DELEGATED;COMPLETED;INPROCESS"
-"RANGE","icalparameter_range","THISANDPRIOR;THISANDFUTURE"
-"RELATED","icalparameter_related","START;END "
-"RELTYPE","icalparameter_reltype","PARENT;CHILD;SIBLING"
-"ROLE","icalparameter_role","CHAIR;REQ-PARTICIPANT;OPT-PARTICIPANT;NON-PARTICIPANT"
-"RSVP","icalparameter_rsvp","TRUE;FALSE"
-"SENT-BY","const char*",
-"TZID","const char*",
-"VALUE","icalparameter_value","BINARY;BOOLEAN;DATE;DURATION;FLOAT;INTEGER;PERIOD;RECUR;TEXT;TIME;URI;ERROR;DATE-TIME;UTC-OFFSET;CAL-ADDRESS"
-"X","const char*",
-"X-LIC-ERRORTYPE","icalparameter_xlicerrortype","COMPONENT-PARSE-ERROR;PROPERTY-PARSE-ERROR;PARAMETER-NAME-PARSE-ERROR;PARAMETER-VALUE-PARSE-ERROR;VALUE-PARSE-ERROR;INVALID-ITIP;UNKNOWN-VCAL-PROP-ERROR;MIME-PARSE-ERROR"
-"X-LIC-COMPARETYPE","icalparameter_xliccomparetype","EQUAL;NOTEQUAL;LESS;GREATER;LESSEQUAL;GREATEREQUAL;REGEX"
diff --git a/src/plugins/vcalendar/libical/design-data/properties.csv b/src/plugins/vcalendar/libical/design-data/properties.csv
deleted file mode 100644 (file)
index dca6810..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-,,
-"#Property Name","libical Value type","iCalendar default value"
-"ACTION","ACTION","ACTION"
-"ATTACH","ATTACH","URI"
-"ATTENDEE","CAL-ADDRESS","CAL-ADDRESS"
-"CALSCALE","TEXT","TEXT"
-"CATEGORIES","TEXT","TEXT"
-"CLASS","TEXT","TEXT"
-"COMMENT","TEXT","TEXT"
-"COMPLETED","DATE-TIME","DATE-TIME"
-"CONTACT","TEXT","TEXT"
-"CREATED","DATE-TIME","DATE-TIME"
-"DESCRIPTION","TEXT","TEXT"
-"DTEND","DATE-TIME","DATE-TIME"
-"DTSTAMP","DATE-TIME","DATE-TIME"
-"DTSTART","DATE-TIME","DATE-TIME"
-"DUE","DATE-TIME","DATE-TIME"
-"DURATION","DURATION","DURATION"
-"EXDATE","DATE-TIME","DATE-TIME"
-"EXRULE","RECUR","RECUR"
-"FREEBUSY","PERIOD","PERIOD"
-"GEO","GEO","GEO"
-"LAST-MODIFIED","DATE-TIME","DATE-TIME"
-"LOCATION","TEXT","TEXT"
-"METHOD","METHOD","METHOD"
-"ORGANIZER","CAL-ADDRESS","CAL-ADDRESS"
-"PERCENT-COMPLETE","INTEGER","INTEGER"
-"PRIORITY","INTEGER","INTEGER"
-"PRODID","TEXT","TEXT"
-"RDATE","DATE-TIME-PERIOD","DATE-TIME"
-"RECURRENCE-ID","DATE-TIME","DATE-TIME"
-"RELATED-TO","TEXT","TEXT"
-"REPEAT","INTEGER","INTEGER"
-"REQUEST-STATUS","STRING","STRING"
-"RESOURCES","TEXT","TEXT"
-"RRULE","RECUR","RECUR"
-"SEQUENCE","INTEGER","INTEGER"
-"STATUS","STATUS","STATUS"
-"SUMMARY","TEXT","TEXT"
-"TRANSP","TEXT","TEXT"
-"TRIGGER","TRIGGER","DURATION"
-"TZID","TEXT","TEXT"
-"TZNAME","TEXT","TEXT"
-"TZOFFSETFROM","UTC-OFFSET","UTC-OFFSET"
-"TZOFFSETTO","UTC-OFFSET","UTC-OFFSET"
-"TZURL","URI","URI"
-"UID","TEXT","TEXT"
-"URL","URI","URI"
-"VERSION","TEXT","TEXT"
-"X","TEXT","TEXT"
-"SCOPE","TEXT","TEXT"
-"MAXRESULTS","INTEGER","INTEGER"
-"MAXRESULTSSIZE","INTEGER","INTEGER"
-"QUERY","QUERY","QUERY"
-"QUERYNAME","TEXT","TEXT"
-"TARGET","CAL-ADDRESS","CAL-ADDRESS"
-"X-LIC-ERROR","TEXT","TEXT"
-"X-LIC-CLUSTERCOUNT","STRING","STRING"
-"X-LIC-MIMECONTENTTYPE","STRING","STRING"
-"X-LIC-MIMECHARSET","STRING","STRING"
-"X-LIC-MIMEENCODING","STRING","STRING"
-"X-LIC-MIMEOPTINFO","STRING","STRING"
-"X-LIC-MIMECID","STRING","STRING"
-"X-LIC-MIMEFILENAME","STRING","STRING"
-"ANY","NO","NO"
-"NO","NO","NO"
diff --git a/src/plugins/vcalendar/libical/design-data/restrictions.csv b/src/plugins/vcalendar/libical/design-data/restrictions.csv
deleted file mode 100644 (file)
index 1c62e2a..0000000
+++ /dev/null
@@ -1,1348 +0,0 @@
-# Method, Target component, Property, Sub-component, Restriction
-PUBLISH,VEVENT,NONE,NONE,ONEPLUS
-PUBLISH,VEVENT,DTSTAMP,NONE,ONE
-PUBLISH,VEVENT,DTSTART,NONE,ONE
-PUBLISH,VEVENT,ORGANIZER,NONE,ONE
-PUBLISH,VEVENT,SUMMARY,NONE,ONE
-PUBLISH,VEVENT,UID,NONE,ONE
-PUBLISH,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-PUBLISH,VEVENT,SEQUENCE,NONE,ZEROORONE
-PUBLISH,VEVENT,ATTACH,NONE,ZEROPLUS
-PUBLISH,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-PUBLISH,VEVENT,CLASS,NONE,ZEROORONE
-PUBLISH,VEVENT,COMMENT,NONE,ZEROORONE
-PUBLISH,VEVENT,CONTACT,NONE,ZEROPLUS
-PUBLISH,VEVENT,CREATED,NONE,ZEROORONE
-PUBLISH,VEVENT,DESCRIPTION,NONE,ZEROORONE
-PUBLISH,VEVENT,DTEND,NONE,ZEROORONE
-PUBLISH,VEVENT,DURATION,NONE,ZEROORONE
-PUBLISH,VEVENT,EXDATE,NONE,ZEROPLUS
-PUBLISH,VEVENT,EXRULE,NONE,ZEROPLUS
-PUBLISH,VEVENT,GEO,NONE,ZEROORONE
-PUBLISH,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-PUBLISH,VEVENT,LOCATION,NONE,ZEROORONE
-PUBLISH,VEVENT,PRIORITY,NONE,ZEROORONE
-PUBLISH,VEVENT,RDATE,NONE,ZEROPLUS
-PUBLISH,VEVENT,RELATEDTO,NONE,ZEROPLUS
-PUBLISH,VEVENT,RESOURCES,NONE,ZEROORONE
-PUBLISH,VEVENT,RRULE,NONE,ZEROPLUS
-PUBLISH,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf_cancel
-PUBLISH,VEVENT,TRANSP,NONE,ZEROORONE
-PUBLISH,VEVENT,URL,NONE,ZEROORONE
-PUBLISH,VEVENT,X,NONE,ZEROPLUS
-PUBLISH,VEVENT,ATTENDEE,NONE,ZERO
-PUBLISH,VEVENT,REQUESTSTATUS,NONE,ZERO
-PUBLISH,VEVENT,NONE,VALARM,ZEROPLUS
-PUBLISH,VEVENT,NONE,VFREEBUSY,ZERO
-PUBLISH,VEVENT,NONE,VJOURNAL,ZERO
-PUBLISH,VEVENT,NONE,VTODO,ZERO
-PUBLISH,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-PUBLISH,VEVENT,NONE,X,ZEROPLUS
-REQUEST,VEVENT,NONE,NONE,ONEPLUS
-REQUEST,VEVENT,ATTENDEE,NONE,ONEPLUS
-REQUEST,VEVENT,DTSTAMP,NONE,ONE
-REQUEST,VEVENT,DTSTART,NONE,ONE
-REQUEST,VEVENT,ORGANIZER,NONE,ONE
-REQUEST,VEVENT,SEQUENCE,NONE,ZEROORONE
-REQUEST,VEVENT,SUMMARY,NONE,ONE
-REQUEST,VEVENT,UID,NONE,ONE
-REQUEST,VEVENT,ATTACH,NONE,ZEROPLUS
-REQUEST,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-REQUEST,VEVENT,CLASS,NONE,ZEROORONE
-REQUEST,VEVENT,COMMENT,NONE,ZEROORONE
-REQUEST,VEVENT,CONTACT,NONE,ZEROPLUS
-REQUEST,VEVENT,CREATED,NONE,ZEROORONE
-REQUEST,VEVENT,DESCRIPTION,NONE,ZEROORONE
-REQUEST,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-REQUEST,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-REQUEST,VEVENT,EXDATE,NONE,ZEROPLUS
-REQUEST,VEVENT,EXRULE,NONE,ZEROPLUS
-REQUEST,VEVENT,GEO,NONE,ZEROORONE
-REQUEST,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-REQUEST,VEVENT,LOCATION,NONE,ZEROORONE
-REQUEST,VEVENT,PRIORITY,NONE,ZEROORONE
-REQUEST,VEVENT,RDATE,NONE,ZEROPLUS
-REQUEST,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REQUEST,VEVENT,RELATEDTO,NONE,ZEROPLUS
-REQUEST,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-REQUEST,VEVENT,RESOURCES,NONE,ZEROORONE
-REQUEST,VEVENT,RRULE,NONE,ZEROPLUS
-REQUEST,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf
-REQUEST,VEVENT,TRANSP,NONE,ZEROORONE
-REQUEST,VEVENT,URL,NONE,ZEROORONE
-REQUEST,VEVENT,X,NONE,ZEROPLUS
-REQUEST,VEVENT,NONE,VALARM,ZEROPLUS
-REQUEST,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-REQUEST,VEVENT,NONE,X,ZEROPLUS
-REQUEST,VEVENT,NONE,VFREEBUSY,ZERO
-REQUEST,VEVENT,NONE,VJOURNAL,ZERO
-REQUEST,VEVENT,NONE,VTODO,ZERO
-REPLY,VEVENT,NONE,NONE,ONEPLUS
-REPLY,VEVENT,ATTENDEE,NONE,ONE
-REPLY,VEVENT,DTSTAMP,NONE,ONE
-REPLY,VEVENT,ORGANIZER,NONE,ONE
-REPLY,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REPLY,VEVENT,UID,NONE,ONE
-REPLY,VEVENT,SEQUENCE,NONE,ZEROORONE
-REPLY,VEVENT,ATTACH,NONE,ZEROPLUS
-REPLY,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-REPLY,VEVENT,CLASS,NONE,ZEROORONE
-REPLY,VEVENT,COMMENT,NONE,ZEROORONE
-REPLY,VEVENT,CONTACT,NONE,ZEROPLUS
-REPLY,VEVENT,CREATED,NONE,ZEROORONE
-REPLY,VEVENT,DESCRIPTION,NONE,ZEROORONE
-REPLY,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-REPLY,VEVENT,DTSTART,NONE,ZEROORONE
-REPLY,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_dtend
-REPLY,VEVENT,EXDATE,NONE,ZEROPLUS
-REPLY,VEVENT,EXRULE,NONE,ZEROPLUS
-REPLY,VEVENT,GEO,NONE,ZEROORONE
-REPLY,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-REPLY,VEVENT,LOCATION,NONE,ZEROORONE
-REPLY,VEVENT,PRIORITY,NONE,ZEROORONE
-REPLY,VEVENT,RDATE,NONE,ZEROPLUS
-REPLY,VEVENT,RELATEDTO,NONE,ZEROPLUS
-REPLY,VEVENT,RESOURCES,NONE,ZEROORONE
-REPLY,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-REPLY,VEVENT,RRULE,NONE,ZEROPLUS
-REPLY,VEVENT,STATUS,NONE,ZEROORONE
-REPLY,VEVENT,SUMMARY,NONE,ZEROORONE
-REPLY,VEVENT,TRANSP,NONE,ZEROORONE
-REPLY,VEVENT,URL,NONE,ZEROORONE
-REPLY,VEVENT,X,NONE,ZEROPLUS
-REPLY,VEVENT,NONE,VTIMEZONE,ZEROORONE,must_if_tz_ref
-REPLY,VEVENT,NONE,X,ZEROPLUS
-REPLY,VEVENT,NONE,VALARM,ZERO
-REPLY,VEVENT,NONE,VFREEBUSY,ZERO
-REPLY,VEVENT,NONE,VJOURNAL,ZERO
-REPLY,VEVENT,NONE,VTODO,ZERO
-ADD,VEVENT,NONE,NONE,ONE
-ADD,VEVENT,DTSTAMP,NONE,ONE
-ADD,VEVENT,DTSTART,NONE,ONE
-ADD,VEVENT,ORGANIZER,NONE,ONE
-ADD,VEVENT,SEQUENCE,NONE,ONE
-ADD,VEVENT,SUMMARY,NONE,ONE
-ADD,VEVENT,UID,NONE,ONE
-ADD,VEVENT,ATTACH,NONE,ZEROPLUS
-ADD,VEVENT,ATTENDEE,NONE,ZEROPLUS
-ADD,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-ADD,VEVENT,CLASS,NONE,ZEROORONE
-ADD,VEVENT,COMMENT,NONE,ZEROORONE
-ADD,VEVENT,CONTACT,NONE,ZEROPLUS
-ADD,VEVENT,CREATED,NONE,ZEROORONE
-ADD,VEVENT,DESCRIPTION,NONE,ZEROORONE
-ADD,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-ADD,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_duration
-ADD,VEVENT,EXDATE,NONE,ZEROPLUS
-ADD,VEVENT,EXRULE,NONE,ZEROPLUS
-ADD,VEVENT,GEO,NONE,ZEROORONE
-ADD,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-ADD,VEVENT,LOCATION,NONE,ZEROORONE
-ADD,VEVENT,PRIORITY,NONE,ZEROORONE
-ADD,VEVENT,RDATE,NONE,ZEROPLUS
-ADD,VEVENT,RELATEDTO,NONE,ZEROPLUS
-ADD,VEVENT,RESOURCES,NONE,ZEROORONE
-ADD,VEVENT,RRULE,NONE,ZEROPLUS
-ADD,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf
-ADD,VEVENT,TRANSP,NONE,ZEROORONE
-ADD,VEVENT,URL,NONE,ZEROORONE
-ADD,VEVENT,X,NONE,ZEROPLUS
-ADD,VEVENT,RECURRENCEID,NONE,ZERO,must_be_recurring
-ADD,VEVENT,REQUESTSTATUS,NONE,ZERO
-ADD,VEVENT,NONE,VALARM,ZEROPLUS
-ADD,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-ADD,VEVENT,NONE,X,ZEROPLUS
-ADD,VEVENT,NONE,VFREEBUSY,ZERO
-ADD,VEVENT,NONE,VTODO,ZERO
-ADD,VEVENT,NONE,VJOURNAL,ZERO
-CANCEL,VEVENT,NONE,NONE,ONEPLUS
-CANCEL,VEVENT,ATTENDEE,NONE,ZEROPLUS
-CANCEL,VEVENT,DTSTAMP,NONE,ONE
-CANCEL,VEVENT,ORGANIZER,NONE,ONE
-CANCEL,VEVENT,SEQUENCE,NONE,ONE
-CANCEL,VEVENT,UID,NONE,ONE
-CANCEL,VEVENT,COMMENT,NONE,ZEROORONE
-CANCEL,VEVENT,ATTACH,NONE,ZEROPLUS
-CANCEL,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-CANCEL,VEVENT,CLASS,NONE,ZEROORONE
-CANCEL,VEVENT,CONTACT,NONE,ZEROPLUS
-CANCEL,VEVENT,CREATED,NONE,ZEROORONE
-CANCEL,VEVENT,DESCRIPTION,NONE,ZEROORONE
-CANCEL,VEVENT,DTEND,NONE,ONEEXCLUSIVE ,no_duration
-CANCEL,VEVENT,DTSTART,NONE,ZEROORONE
-CANCEL,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_duration
-CANCEL,VEVENT,EXDATE,NONE,ZEROPLUS
-CANCEL,VEVENT,EXRULE,NONE,ZEROPLUS
-CANCEL,VEVENT,GEO,NONE,ZEROORONE
-CANCEL,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-CANCEL,VEVENT,LOCATION,NONE,ZEROORONE
-CANCEL,VEVENT,PRIORITY,NONE,ZEROORONE
-CANCEL,VEVENT,RDATE,NONE,ZEROPLUS
-CANCEL,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-CANCEL,VEVENT,RELATEDTO,NONE,ZEROPLUS
-CANCEL,VEVENT,RESOURCES,NONE,ZEROORONE
-CANCEL,VEVENT,RRULE,NONE,ZEROPLUS
-CANCEL,VEVENT,STATUS,NONE,ZEROORONE,must_be_canceled_no_attendee
-CANCEL,VEVENT,SUMMARY,NONE,ZEROORONE
-CANCEL,VEVENT,TRANSP,NONE,ZEROORONE
-CANCEL,VEVENT,URL,NONE,ZEROORONE
-CANCEL,VEVENT,X,NONE,ZEROPLUS
-CANCEL,VEVENT,REQUESTSTATUS,NONE,ZERO
-CANCEL,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-CANCEL,VEVENT,NONE,X,ZEROPLUS
-CANCEL,VEVENT,NONE,VTODO,ZERO
-CANCEL,VEVENT,NONE,VJOURNAL,ZERO
-CANCEL,VEVENT,NONE,VFREEBUSY,ZERO
-CANCEL,VEVENT,NONE,VALARM,ZERO
-REFRESH,VEVENT,NONE,NONE,ONE
-REFRESH,VEVENT,ATTENDEE,NONE,ONE
-REFRESH,VEVENT,DTSTAMP,NONE,ONE
-REFRESH,VEVENT,ORGANIZER,NONE,ONE
-REFRESH,VEVENT,UID,NONE,ONE
-REFRESH,VEVENT,COMMENT,NONE,ZEROORONE
-REFRESH,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REFRESH,VEVENT,X,NONE,ZEROPLUS
-REFRESH,VEVENT,ATTACH,NONE,ZERO
-REFRESH,VEVENT,CATEGORIES,NONE,ZERO
-REFRESH,VEVENT,CLASS,NONE,ZERO
-REFRESH,VEVENT,CONTACT,NONE,ZERO
-REFRESH,VEVENT,CREATED,NONE,ZERO
-REFRESH,VEVENT,DESCRIPTION,NONE,ZERO
-REFRESH,VEVENT,DTEND,NONE,ZERO
-REFRESH,VEVENT,DTSTART,NONE,ZERO
-REFRESH,VEVENT,DURATION,NONE,ZERO
-REFRESH,VEVENT,EXDATE,NONE,ZERO
-REFRESH,VEVENT,EXRULE,NONE,ZERO
-REFRESH,VEVENT,GEO,NONE,ZERO
-REFRESH,VEVENT,LASTMODIFIED,NONE,ZERO
-REFRESH,VEVENT,LOCATION,NONE,ZERO
-REFRESH,VEVENT,PRIORITY,NONE,ZERO
-REFRESH,VEVENT,RDATE,NONE,ZERO
-REFRESH,VEVENT,RELATEDTO,NONE,ZERO
-REFRESH,VEVENT,REQUESTSTATUS,NONE,ZERO
-REFRESH,VEVENT,RESOURCES,NONE,ZERO
-REFRESH,VEVENT,RRULE,NONE,ZERO
-REFRESH,VEVENT,SEQUENCE,NONE,ZERO
-REFRESH,VEVENT,STATUS,NONE,ZERO
-REFRESH,VEVENT,SUMMARY,NONE,ZERO
-REFRESH,VEVENT,TRANSP,NONE,ZERO
-REFRESH,VEVENT,URL,NONE,ZERO
-REFRESH,VEVENT,NONE,X,ZEROPLUS
-REFRESH,VEVENT,NONE,VTODO,ZERO
-REFRESH,VEVENT,NONE,VJOURNAL,ZERO
-REFRESH,VEVENT,NONE,VFREEBUSY,ZERO
-REFRESH,VEVENT,NONE,VTIMEZONE,ZERO,must_if_tz_ref
-REFRESH,VEVENT,NONE,VALARM,ZERO
-COUNTER,VEVENT,NONE,NONE,ONE
-COUNTER,VEVENT,DTSTAMP,NONE,ONE
-COUNTER,VEVENT,DTSTART,NONE,ONE
-COUNTER,VEVENT,ORGANIZER,NONE,ONE
-COUNTER,VEVENT,SEQUENCE,NONE,ONE
-COUNTER,VEVENT,SUMMARY,NONE,ONE
-COUNTER,VEVENT,UID,NONE,ONE
-COUNTER,VEVENT,ATTACH,NONE,ZEROPLUS
-COUNTER,VEVENT,ATTENDEE,NONE,ZEROPLUS
-COUNTER,VEVENT,CATEGORIES,NONE,ZEROPLUS #Non-standard
-COUNTER,VEVENT,CLASS,NONE,ZEROORONE
-COUNTER,VEVENT,COMMENT,NONE,ZEROORONE
-COUNTER,VEVENT,CONTACT,NONE,ZEROPLUS
-COUNTER,VEVENT,CREATED,NONE,ZEROORONE
-COUNTER,VEVENT,DESCRIPTION,NONE,ZEROORONE
-COUNTER,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-COUNTER,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_duration
-COUNTER,VEVENT,EXDATE,NONE,ZEROPLUS
-COUNTER,VEVENT,EXRULE,NONE,ZEROPLUS
-COUNTER,VEVENT,GEO,NONE,ZEROORONE
-COUNTER,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-COUNTER,VEVENT,LOCATION,NONE,ZEROORONE
-COUNTER,VEVENT,PRIORITY,NONE,ZEROORONE
-COUNTER,VEVENT,RDATE,NONE,ZEROPLUS
-COUNTER,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-COUNTER,VEVENT,RELATEDTO,NONE,ZEROPLUS
-COUNTER,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-COUNTER,VEVENT,RESOURCES,NONE,ZEROORONE
-COUNTER,VEVENT,RRULE,NONE,ZEROPLUS
-COUNTER,VEVENT,STATUS,NONE,ZEROORONE,may_be_tent_conf_cancel
-COUNTER,VEVENT,TRANSP,NONE,ZEROORONE
-COUNTER,VEVENT,URL,NONE,ZEROORONE
-COUNTER,VEVENT,X,NONE,ZEROPLUS
-COUNTER,VEVENT,NONE,VALARM,ZEROPLUS
-COUNTER,VEVENT,NONE,VTIMEZONE,ZEROPLUS,must_if_tz_ref
-COUNTER,VEVENT,NONE,X,ZEROPLUS
-COUNTER,VEVENT,NONE,VTODO,ZERO
-COUNTER,VEVENT,NONE,VJOURNAL,ZERO
-COUNTER,VEVENT,NONE,VFREEBUSY,ZERO
-DECLINECOUNTER,VEVENT,NONE,NONE,ONE
-DECLINECOUNTER,VEVENT,DTSTAMP,NONE,ONE
-DECLINECOUNTER,VEVENT,ORGANIZER,NONE,ONE
-DECLINECOUNTER,VEVENT,UID,NONE,ONE
-DECLINECOUNTER,VEVENT,COMMENT,NONE,ZEROORONE
-DECLINECOUNTER,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-DECLINECOUNTER,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-DECLINECOUNTER,VEVENT,SEQUENCE,NONE,ZERO
-DECLINECOUNTER,VEVENT,X,NONE,ZEROPLUS
-DECLINECOUNTER,VEVENT,ATTACH,NONE,ZERO
-DECLINECOUNTER,VEVENT,ATTENDEE,NONE,ZERO
-DECLINECOUNTER,VEVENT,CATEGORIES,NONE,ZERO
-DECLINECOUNTER,VEVENT,CLASS,NONE,ZERO
-DECLINECOUNTER,VEVENT,CONTACT,NONE,ZERO
-DECLINECOUNTER,VEVENT,CREATED,NONE,ZERO
-DECLINECOUNTER,VEVENT,DESCRIPTION,NONE,ZERO
-DECLINECOUNTER,VEVENT,DTEND,NONE,ZERO
-DECLINECOUNTER,VEVENT,DTSTART,NONE,ZERO
-DECLINECOUNTER,VEVENT,DURATION,NONE,ZERO
-DECLINECOUNTER,VEVENT,EXDATE,NONE,ZERO
-DECLINECOUNTER,VEVENT,EXRULE,NONE,ZERO
-DECLINECOUNTER,VEVENT,GEO,NONE,ZERO
-DECLINECOUNTER,VEVENT,LASTMODIFIED,NONE,ZERO
-DECLINECOUNTER,VEVENT,LOCATION,NONE,ZERO
-DECLINECOUNTER,VEVENT,PRIORITY,NONE,ZERO
-DECLINECOUNTER,VEVENT,RDATE,NONE,ZERO
-DECLINECOUNTER,VEVENT,RELATEDTO,NONE,ZERO
-DECLINECOUNTER,VEVENT,RESOURCES,NONE,ZERO
-DECLINECOUNTER,VEVENT,RRULE,NONE,ZERO
-DECLINECOUNTER,VEVENT,STATUS,NONE,ZERO
-DECLINECOUNTER,VEVENT,SUMMARY,NONE,ZERO
-DECLINECOUNTER,VEVENT,TRANSP,NONE,ZERO
-DECLINECOUNTER,VEVENT,URL,NONE,ZERO
-DECLINECOUNTER,VEVENT,NONE,X,ZEROPLUS
-DECLINECOUNTER,VEVENT,NONE,VTODO,ZERO
-DECLINECOUNTER,VEVENT,NONE,VJOURNAL,ZERO
-DECLINECOUNTER,VEVENT,NONE,VFREEBUSY,ZERO
-DECLINECOUNTER,VEVENT,NONE,VTIMEZONE,ZERO,must_if_tz_ref
-DECLINECOUNTER,VEVENT,NONE,VALARM,ZERO
-PUBLISH,VFREEBUSY,NONE,NONE,ONEPLUS
-PUBLISH,VFREEBUSY,DTSTAMP,NONE,ONE
-PUBLISH,VFREEBUSY,DTSTART,NONE,ONE
-PUBLISH,VFREEBUSY,DTEND,NONE,ONE
-PUBLISH,VFREEBUSY,FREEBUSY,NONE,ONEPLUS
-PUBLISH,VFREEBUSY,ORGANIZER,NONE,ONE
-PUBLISH,VFREEBUSY,COMMENT,NONE,ZEROORONE
-PUBLISH,VFREEBUSY,CONTACT,NONE,ZEROPLUS
-PUBLISH,VFREEBUSY,X,NONE,ZEROPLUS
-PUBLISH,VFREEBUSY,URL,NONE,ZEROORONE
-PUBLISH,VFREEBUSY,ATTENDEE,NONE,ZERO
-PUBLISH,VFREEBUSY,DURATION,NONE,ZERO
-PUBLISH,VFREEBUSY,REQUESTSTATUS,NONE,ZERO
-PUBLISH,VFREEBUSY,UID,NONE,ZERO
-PUBLISH,VFREEBUSY,NONE,X,ZEROPLUS
-PUBLISH,VFREEBUSY,NONE,VEVENT,ZERO
-PUBLISH,VFREEBUSY,NONE,VTODO,ZERO
-PUBLISH,VFREEBUSY,NONE,VJOURNAL,ZERO
-PUBLISH,VFREEBUSY,NONE,VTIMEZONE,ZERO,must_if_tz_ref
-PUBLISH,VFREEBUSY,NONE,VALARM,ZERO
-REQUEST,VFREEBUSY,NONE,NONE,ONE
-REQUEST,VFREEBUSY,ATTENDEE,NONE,ONEPLUS
-REQUEST,VFREEBUSY,DTEND,NONE,ONE
-REQUEST,VFREEBUSY,DTSTAMP,NONE,ONE
-REQUEST,VFREEBUSY,DTSTART,NONE,ONE
-REQUEST,VFREEBUSY,ORGANIZER,NONE,ONE
-REQUEST,VFREEBUSY,UID,NONE,ONE
-REQUEST,VFREEBUSY,COMMENT,NONE,ZEROORONE
-REQUEST,VFREEBUSY,CONTACT,NONE,ZEROPLUS
-REQUEST,VFREEBUSY,X,NONE,ZEROPLUS
-REQUEST,VFREEBUSY,FREEBUSY,NONE,ZERO
-REQUEST,VFREEBUSY,DURATION,NONE,ZERO
-REQUEST,VFREEBUSY,REQUESTSTATUS,NONE,ZERO
-REQUEST,VFREEBUSY,URL,NONE,ZERO
-REQUEST,VFREEBUSY,NONE,X,ZEROPLUS
-REQUEST,VFREEBUSY,NONE,VALARM,ZERO
-REQUEST,VFREEBUSY,NONE,VEVENT,ZERO
-REQUEST,VFREEBUSY,NONE,VTODO,ZERO
-REQUEST,VFREEBUSY,NONE,VJOURNAL,ZERO
-REQUEST,VFREEBUSY,NONE,VTIMEZONE,ZERO
-REPLY,VFREEBUSY,NONE,NONE,ONE
-REPLY,VFREEBUSY,ATTENDEE,NONE,ONE
-REPLY,VFREEBUSY,DTSTAMP,NONE,ONE
-REPLY,VFREEBUSY,DTEND,NONE,ONE
-REPLY,VFREEBUSY,DTSTART,NONE,ONE
-REPLY,VFREEBUSY,FREEBUSY,NONE,ONEPLUS
-REPLY,VFREEBUSY,ORGANIZER,NONE,ONE
-REPLY,VFREEBUSY,UID,NONE,ONE
-REPLY,VFREEBUSY,COMMENT,NONE,ZEROORONE
-REPLY,VFREEBUSY,CONTACT,NONE,ZEROPLUS
-REPLY,VFREEBUSY,REQUESTSTATUS,NONE,ZEROPLUS
-REPLY,VFREEBUSY,URL,NONE,ZEROORONE
-REPLY,VFREEBUSY,X,NONE,ZEROPLUS
-REPLY,VFREEBUSY,DURATION,NONE,ZERO
-REPLY,VFREEBUSY,SEQUENCE,NONE,ZERO
-REPLY,VFREEBUSY,NONE,X,ZEROPLUS
-REPLY,VFREEBUSY,NONE,VALARM,ZERO
-REPLY,VFREEBUSY,NONE,VEVENT,ZERO
-REPLY,VFREEBUSY,NONE,VTODO,ZERO
-REPLY,VFREEBUSY,NONE,VJOURNAL,ZERO
-REPLY,VFREEBUSY,NONE,VTIMEZONE,ZERO
-PUBLISH,VTODO,NONE,NONE,ONEPLUS
-PUBLISH,VTODO,DTSTAMP,NONE,ONE
-PUBLISH,VTODO,DTSTART,NONE,ONE
-PUBLISH,VTODO,ORGANIZER,NONE,ONE
-PUBLISH,VTODO,PRIORITY,NONE,ONE
-PUBLISH,VTODO,SEQUENCE,NONE,ZEROORONE
-PUBLISH,VTODO,SUMMARY,NONE,ONE
-PUBLISH,VTODO,UID,NONE,ONE
-PUBLISH,VTODO,ATTACH,NONE,ZEROPLUS
-PUBLISH,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-PUBLISH,VTODO,CLASS,NONE,ZEROORONE
-PUBLISH,VTODO,COMMENT,NONE,ZEROORONE
-PUBLISH,VTODO,CONTACT,NONE,ZEROPLUS
-PUBLISH,VTODO,CREATED,NONE,ZEROORONE
-PUBLISH,VTODO,DESCRIPTION,NONE,ZEROORONE
-PUBLISH,VTODO,DUE,NONE,ZEROORONE
-PUBLISH,VTODO,DURATION,NONE,ZEROORONE
-PUBLISH,VTODO,EXDATE,NONE,ZEROPLUS
-PUBLISH,VTODO,EXRULE,NONE,ZEROPLUS
-PUBLISH,VTODO,GEO,NONE,ZEROORONE
-PUBLISH,VTODO,LASTMODIFIED,NONE,ZEROORONE
-PUBLISH,VTODO,LOCATION,NONE,ZEROORONE
-PUBLISH,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-PUBLISH,VTODO,RDATE,NONE,ZEROPLUS
-PUBLISH,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-PUBLISH,VTODO,RELATEDTO,NONE,ZEROPLUS
-PUBLISH,VTODO,RESOURCES,NONE,ZEROORONE
-PUBLISH,VTODO,RRULE,NONE,ZEROPLUS
-PUBLISH,VTODO,STATUS,NONE,ZEROORONE
-PUBLISH,VTODO,URL,NONE,ZEROORONE
-PUBLISH,VTODO,X,NONE,ZEROPLUS
-PUBLISH,VTODO,ATTENDEE,NONE,ZERO
-PUBLISH,VTODO,REQUESTSTATUS,NONE,ZERO
-PUBLISH,VTODO,NONE,VTIMEZONE,ZEROPLUS
-PUBLISH,VTODO,NONE,VALARM,ZEROPLUS
-PUBLISH,VTODO,NONE,X,ZEROPLUS
-PUBLISH,VTODO,NONE,VFREEBUSY,ZERO
-PUBLISH,VTODO,NONE,VEVENT,ZERO
-PUBLISH,VTODO,NONE,VJOURNAL,ZERO
-REQUEST,VTODO,NONE,NONE,ONEPLUS
-REQUEST,VTODO,ATTENDEE,NONE,ONEPLUS
-REQUEST,VTODO,DTSTAMP,NONE,ONE
-REQUEST,VTODO,DTSTART,NONE,ONE
-REQUEST,VTODO,ORGANIZER,NONE,ONE
-REQUEST,VTODO,PRIORITY,NONE,ONE
-REQUEST,VTODO,SEQUENCE,NONE,ZEROORONE
-REQUEST,VTODO,SUMMARY,NONE,ONE
-REQUEST,VTODO,UID,NONE,ONE
-REQUEST,VTODO,ATTACH,NONE,ZEROPLUS
-REQUEST,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-REQUEST,VTODO,CLASS,NONE,ZEROORONE
-REQUEST,VTODO,COMMENT,NONE,ZEROORONE
-REQUEST,VTODO,CONTACT,NONE,ZEROPLUS
-REQUEST,VTODO,CREATED,NONE,ZEROORONE
-REQUEST,VTODO,DESCRIPTION,NONE,ZEROORONE
-REQUEST,VTODO,DUE,NONE,ZEROORONE
-REQUEST,VTODO,DURATION,NONE,ZEROORONE
-REQUEST,VTODO,EXDATE,NONE,ZEROPLUS
-REQUEST,VTODO,EXRULE,NONE,ZEROPLUS
-REQUEST,VTODO,GEO,NONE,ZEROORONE
-REQUEST,VTODO,LASTMODIFIED,NONE,ZEROORONE
-REQUEST,VTODO,LOCATION,NONE,ZEROORONE
-REQUEST,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-REQUEST,VTODO,RDATE,NONE,ZEROPLUS
-REQUEST,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REQUEST,VTODO,RELATEDTO,NONE,ZEROPLUS
-REQUEST,VTODO,RESOURCES,NONE,ZEROORONE
-REQUEST,VTODO,RRULE,NONE,ZEROPLUS
-REQUEST,VTODO,STATUS,NONE,ZEROORONE,may_be_comp_need_process
-REQUEST,VTODO,URL,NONE,ZEROORONE
-REQUEST,VTODO,X,NONE,ZEROPLUS
-REQUEST,VTODO,REQUESTSTATUS,NONE,ZERO
-REQUEST,VTODO,NONE,VALARM,ZEROPLUS
-REQUEST,VTODO,NONE,VTIMEZONE,ZEROPLUS
-REQUEST,VTODO,NONE,X,ZEROPLUS
-REQUEST,VTODO,NONE,VEVENT,ZERO
-REQUEST,VTODO,NONE,VFREEBUSY,ZERO
-REQUEST,VTODO,NONE,VJOURNAL,ZERO
-REPLY,VTODO,NONE,NONE,ONEPLUS
-REPLY,VTODO,ATTENDEE,NONE,ONEPLUS
-REPLY,VTODO,DTSTAMP,NONE,ONE
-REPLY,VTODO,ORGANIZER,NONE,ONE
-REPLY,VTODO,REQUESTSTATUS,NONE,ONEPLUS
-REPLY,VTODO,UID,NONE,ONE
-REPLY,VTODO,ATTACH,NONE,ZEROPLUS
-REPLY,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-REPLY,VTODO,CLASS,NONE,ZEROORONE
-REPLY,VTODO,COMMENT,NONE,ZEROORONE
-REPLY,VTODO,CONTACT,NONE,ZEROPLUS
-REPLY,VTODO,CREATED,NONE,ZEROORONE
-REPLY,VTODO,DESCRIPTION,NONE,ZEROORONE
-REPLY,VTODO,DTSTART,NONE,ZEROORONE
-REPLY,VTODO,DUE,NONE,ZEROORONE
-REPLY,VTODO,DURATION,NONE,ZEROORONE
-REPLY,VTODO,EXDATE,NONE,ZEROPLUS
-REPLY,VTODO,EXRULE,NONE,ZEROPLUS
-REPLY,VTODO,GEO,NONE,ZEROORONE
-REPLY,VTODO,LASTMODIFIED,NONE,ZEROORONE
-REPLY,VTODO,LOCATION,NONE,ZEROORONE
-REPLY,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-REPLY,VTODO,PRIORITY,NONE,ZEROORONE
-REPLY,VTODO,RDATE,NONE,ZEROPLUS
-REPLY,VTODO,RELATEDTO,NONE,ZEROPLUS
-REPLY,VTODO,RESOURCES,NONE,ZEROORONE
-REPLY,VTODO,RRULE,NONE,ZEROPLUS
-REPLY,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REPLY,VTODO,SEQUENCE,NONE,ZEROORONE
-REPLY,VTODO,STATUS,NONE,ZEROORONE
-REPLY,VTODO,SUMMARY,NONE,ZEROORONE
-REPLY,VTODO,URL,NONE,ZEROORONE
-REPLY,VTODO,X,NONE,ZEROPLUS
-REPLY,VTODO,NONE,VTIMEZONE,ZEROORONE
-REPLY,VTODO,NONE,X,ZEROPLUS
-REPLY,VTODO,NONE,VALARM,ZERO
-REPLY,VTODO,NONE,VEVENT,ZERO
-REPLY,VTODO,NONE,VFREEBUSY,ZERO
-ADD,VTODO,NONE,NONE,ONE
-ADD,VTODO,DTSTAMP,NONE,ONE
-ADD,VTODO,ORGANIZER,NONE,ONE
-ADD,VTODO,PRIORITY,NONE,ONE
-ADD,VTODO,SEQUENCE,NONE,ONE
-ADD,VTODO,SUMMARY,NONE,ONE
-ADD,VTODO,UID,NONE,ONE
-ADD,VTODO,ATTACH,NONE,ZEROPLUS
-ADD,VTODO,ATTENDEE,NONE,ZEROPLUS
-ADD,VTODO,CATEGORIES,NONE,ZEROPLUS
-ADD,VTODO,CLASS,NONE,ZEROORONE
-ADD,VTODO,COMMENT,NONE,ZEROORONE
-ADD,VTODO,CONTACT,NONE,ZEROPLUS
-ADD,VTODO,CREATED,NONE,ZEROORONE
-ADD,VTODO,DESCRIPTION,NONE,ZEROORONE
-ADD,VTODO,DTSTART,NONE,ZEROORONE
-ADD,VTODO,DUE,NONE,ZEROORONE
-ADD,VTODO,DURATION,NONE,ZEROORONE
-ADD,VTODO,EXDATE,NONE,ZEROPLUS
-ADD,VTODO,EXRULE,NONE,ZEROPLUS
-ADD,VTODO,GEO,NONE,ZEROORONE
-ADD,VTODO,LASTMODIFIED,NONE,ZEROORONE
-ADD,VTODO,LOCATION,NONE,ZEROORONE
-ADD,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-ADD,VTODO,RDATE,NONE,ZEROPLUS
-ADD,VTODO,RELATEDTO,NONE,ZEROPLUS
-ADD,VTODO,RESOURCES,NONE,ZEROORONE
-ADD,VTODO,RRULE,NONE,ZEROPLUS
-ADD,VTODO,STATUS,NONE,ZEROORONE,may_be_comp_need_process
-ADD,VTODO,URL,NONE,ZEROORONE
-ADD,VTODO,X,NONE,ZEROPLUS
-ADD,VTODO,RECURRENCEID,NONE,ZERO,must_be_recurring
-ADD,VTODO,REQUESTSTATUS,NONE,ZERO
-ADD,VTODO,NONE,VALARM,ZEROPLUS
-ADD,VTODO,NONE,VTIMEZONE,ZEROPLUS
-ADD,VTODO,NONE,X,ZEROPLUS
-ADD,VTODO,NONE,VEVENT,ZERO
-ADD,VTODO,NONE,VJOURNAL,ZERO
-ADD,VTODO,NONE,VFREEBUSY,ZERO
-CANCEL,VTODO,NONE,NONE,ONE
-CANCEL,VTODO,ATTENDEE,NONE,ZEROPLUS
-CANCEL,VTODO,UID,NONE,ONE
-CANCEL,VTODO,DTSTAMP,NONE,ONE
-CANCEL,VTODO,ORGANIZER,NONE,ONE
-CANCEL,VTODO,SEQUENCE,NONE,ONE
-CANCEL,VTODO,ATTACH,NONE,ZEROPLUS
-CANCEL,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-Standard
-CANCEL,VTODO,CLASS,NONE,ZEROORONE
-CANCEL,VTODO,COMMENT,NONE,ZEROORONE
-CANCEL,VTODO,CONTACT,NONE,ZEROPLUS
-CANCEL,VTODO,CREATED,NONE,ZEROORONE
-CANCEL,VTODO,DESCRIPTION,NONE,ZEROORONE
-CANCEL,VTODO,DTSTART,NONE,ZEROORONE
-CANCEL,VTODO,DUE,NONE,ZEROORONE
-CANCEL,VTODO,DURATION,NONE,ZEROORONE
-CANCEL,VTODO,EXDATE,NONE,ZEROPLUS
-CANCEL,VTODO,EXRULE,NONE,ZEROPLUS
-CANCEL,VTODO,GEO,NONE,ZEROORONE
-CANCEL,VTODO,LASTMODIFIED,NONE,ZEROORONE
-CANCEL,VTODO,LOCATION,NONE,ZEROORONE
-CANCEL,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-CANCEL,VTODO,RDATE,NONE,ZEROPLUS
-CANCEL,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-CANCEL,VTODO,RELATEDTO,NONE,ZEROPLUS
-CANCEL,VTODO,RESOURCES,NONE,ZEROORONE
-CANCEL,VTODO,RRULE,NONE,ZEROPLUS
-CANCEL,VTODO,PRIORITY,NONE,ZEROORONE
-CANCEL,VTODO,STATUS,NONE,ZEROORONE,must_be_canceled_no_attendee
-CANCEL,VTODO,URL,NONE,ZEROORONE
-CANCEL,VTODO,X,NONE,ZEROPLUS
-CANCEL,VTODO,REQUESTSTATUS,NONE,ZERO
-CANCEL,VTODO,NONE,VTIMEZONE,ZEROORONE
-CANCEL,VTODO,NONE,X,ZEROPLUS
-CANCEL,VTODO,NONE,VALARM,ZERO
-CANCEL,VTODO,NONE,VEVENT,ZERO
-CANCEL,VTODO,NONE,VFREEBUSY,ZERO
-REFRESH,VTODO,NONE,NONE,ONE
-REFRESH,VTODO,ATTENDEE,NONE,ONE
-REFRESH,VTODO,DTSTAMP,NONE,ONE
-REFRESH,VTODO,UID,NONE,ONE
-REFRESH,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-REFRESH,VTODO,X,NONE,ZEROPLUS
-REFRESH,VTODO,ATTACH,NONE,ZERO
-REFRESH,VTODO,CATEGORIES,NONE,ZERO
-REFRESH,VTODO,CLASS,NONE,ZERO
-REFRESH,VTODO,COMMENT,NONE,ZERO
-REFRESH,VTODO,CONTACT,NONE,ZERO
-REFRESH,VTODO,CREATED,NONE,ZERO
-REFRESH,VTODO,DESCRIPTION,NONE,ZERO
-REFRESH,VTODO,DTSTART,NONE,ZERO
-REFRESH,VTODO,DUE,NONE,ZERO
-REFRESH,VTODO,DURATION,NONE,ZERO
-REFRESH,VTODO,EXDATE,NONE,ZERO
-REFRESH,VTODO,EXRULE,NONE,ZERO
-REFRESH,VTODO,GEO,NONE,ZERO
-REFRESH,VTODO,LASTMODIFIED,NONE,ZERO
-REFRESH,VTODO,LOCATION,NONE,ZERO
-REFRESH,VTODO,ORGANIZER,NONE,ZERO
-REFRESH,VTODO,PERCENTCOMPLETE,NONE,ZERO
-REFRESH,VTODO,PRIORITY,NONE,ZERO
-REFRESH,VTODO,RDATE,NONE,ZERO
-REFRESH,VTODO,RELATEDTO,NONE,ZERO
-REFRESH,VTODO,REQUESTSTATUS,NONE,ZERO
-REFRESH,VTODO,RESOURCES,NONE,ZERO
-REFRESH,VTODO,RRULE,NONE,ZERO
-REFRESH,VTODO,SEQUENCE,NONE,ZERO
-REFRESH,VTODO,STATUS,NONE,ZERO
-REFRESH,VTODO,URL,NONE,ZERO
-REFRESH,VTODO,NONE,X,ZEROPLUS
-REFRESH,VTODO,NONE,VALARM,ZERO
-REFRESH,VTODO,NONE,VEVENT,ZERO
-REFRESH,VTODO,NONE,VFREEBUSY,ZERO
-REFRESH,VTODO,NONE,VTIMEZONE,ZERO
-COUNTER,VTODO,NONE,NONE,ONE
-COUNTER,VTODO,ATTENDEE,NONE,ONEPLUS
-COUNTER,VTODO,DTSTAMP,NONE,ONE
-COUNTER,VTODO,ORGANIZER,NONE,ONE
-COUNTER,VTODO,PRIORITY,NONE,ONE
-COUNTER,VTODO,SUMMARY,NONE,ONE
-COUNTER,VTODO,UID,NONE,ONE
-COUNTER,VTODO,ATTACH,NONE,ZEROPLUS
-COUNTER,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-standard
-COUNTER,VTODO,CLASS,NONE,ZEROORONE
-COUNTER,VTODO,COMMENT,NONE,ZEROORONE
-COUNTER,VTODO,CONTACT,NONE,ZEROPLUS
-COUNTER,VTODO,CREATED,NONE,ZEROORONE
-COUNTER,VTODO,DESCRIPTION,NONE,ZEROORONE
-COUNTER,VTODO,DTSTART,NONE,ZEROORONE
-COUNTER,VTODO,DUE,NONE,ZEROORONE
-COUNTER,VTODO,DURATION,NONE,ZEROORONE
-COUNTER,VTODO,EXDATE,NONE,ZEROPLUS
-COUNTER,VTODO,EXRULE,NONE,ZEROPLUS
-COUNTER,VTODO,GEO,NONE,ZEROORONE
-COUNTER,VTODO,LASTMODIFIED,NONE,ZEROORONE
-COUNTER,VTODO,LOCATION,NONE,ZEROORONE
-COUNTER,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-COUNTER,VTODO,RDATE,NONE,ZEROPLUS
-COUNTER,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-COUNTER,VTODO,RELATEDTO,NONE,ZEROPLUS
-COUNTER,VTODO,REQUESTSTATUS,NONE,ZEROPLUS
-COUNTER,VTODO,RESOURCES,NONE,ZEROORONE
-COUNTER,VTODO,RRULE,NONE,ZEROORONE
-COUNTER,VTODO,SEQUENCE,NONE,ZEROORONE
-COUNTER,VTODO,STATUS,NONE,ZEROORONE,may_be_comp_need_process
-COUNTER,VTODO,URL,NONE,ZEROORONE
-COUNTER,VTODO,X,NONE,ZEROPLUS
-COUNTER,VTODO,NONE,VALARM,ZEROPLUS
-COUNTER,VTODO,NONE,VTIMEZONE,ZEROORONE
-COUNTER,VTODO,NONE,X,ZEROPLUS
-COUNTER,VTODO,NONE,VEVENT,ZERO
-COUNTER,VTODO,NONE,VFREEBUSY,ZERO
-DECLINECOUNTER,VTODO,NONE,NONE,ONE
-DECLINECOUNTER,VTODO,ATTENDEE,NONE,ONEPLUS
-DECLINECOUNTER,VTODO,DTSTAMP,NONE,ONE
-DECLINECOUNTER,VTODO,ORGANIZER,NONE,ONE
-DECLINECOUNTER,VTODO,SEQUENCE,NONE,ONE
-DECLINECOUNTER,VTODO,UID,NONE,ONE
-DECLINECOUNTER,VTODO,ATTACH,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,CATEGORIES,NONE,ZEROPLUS #Non-standard
-DECLINECOUNTER,VTODO,CLASS,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,COMMENT,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,CONTACT,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,CREATED,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DESCRIPTION,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DTSTART,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DUE,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,DURATION,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,EXDATE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,EXRULE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,GEO,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,LASTMODIFIED,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,LOCATION,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,PRIORITY,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,RDATE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-DECLINECOUNTER,VTODO,RELATEDTO,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,REQUESTSTATUS,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,RESOURCES,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,RRULE,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,STATUS,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,URL,NONE,ZEROORONE
-DECLINECOUNTER,VTODO,X,NONE,ZEROPLUS
-DECLINECOUNTER,VTODO,NONE,VTIMEZONE,ZEROPLUS
-DECLINECOUNTER,VTODO,NONE,X,ZEROPLUS
-DECLINECOUNTER,VTODO,NONE,VALARM,ZERO
-DECLINECOUNTER,VTODO,NONE,VEVENT,ZERO
-DECLINECOUNTER,VTODO,NONE,VFREEBUSY,ZERO
-PUBLISH,VJOURNAL,NONE,NONE,ONEPLUS
-PUBLISH,VJOURNAL,DESCRIPTION,NONE,ONE
-PUBLISH,VJOURNAL,DTSTAMP,NONE,ONE
-PUBLISH,VJOURNAL,DTSTART,NONE,ONE
-PUBLISH,VJOURNAL,ORGANIZER,NONE,ONE
-PUBLISH,VJOURNAL,UID,NONE,ONE
-PUBLISH,VJOURNAL,ATTACH,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,CATEGORIES,NONE,ZEROPLUS #Non-standard
-PUBLISH,VJOURNAL,CLASS,NONE,ZEROORONE
-PUBLISH,VJOURNAL,COMMENT,NONE,ZEROORONE
-PUBLISH,VJOURNAL,CONTACT,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,CREATED,NONE,ZEROORONE
-PUBLISH,VJOURNAL,EXDATE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,EXRULE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-PUBLISH,VJOURNAL,RDATE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-PUBLISH,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,RRULE,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,SEQUENCE,NONE,ZEROORONE
-PUBLISH,VJOURNAL,STATUS,NONE,ZEROORONE,may_be_draft_final_canceled
-PUBLISH,VJOURNAL,SUMMARY,NONE,ZEROORONE
-PUBLISH,VJOURNAL,URL,NONE,ZEROORONE
-PUBLISH,VJOURNAL,X,NONE,ZEROPLUS
-PUBLISH,VJOURNAL,ATTENDEE,NONE,ZERO
-PUBLISH,VJOURNAL,NONE,VALARM,ZEROPLUS
-PUBLISH,VJOURNAL,NONE,VTIMEZONE,ZEROPLUS
-PUBLISH,VJOURNAL,NONE,X,ZEROPLUS
-PUBLISH,VJOURNAL,NONE,VEVENT,ZERO
-PUBLISH,VJOURNAL,NONE,VFREEBUSY,ZERO
-PUBLISH,VJOURNAL,NONE,VTODO,ZERO
-ADD,VJOURNAL,NONE,NONE,ONE
-ADD,VJOURNAL,DESCRIPTION,NONE,ONE
-ADD,VJOURNAL,DTSTAMP,NONE,ONE
-ADD,VJOURNAL,DTSTART,NONE,ONE
-ADD,VJOURNAL,ORGANIZER,NONE,ONE
-ADD,VJOURNAL,SEQUENCE,NONE,ONE
-ADD,VJOURNAL,UID,NONE,ONE
-ADD,VJOURNAL,ATTACH,NONE,ZEROPLUS
-ADD,VJOURNAL,CATEGORIES,NONE,ZEROPLUS #Non-standard
-ADD,VJOURNAL,CLASS,NONE,ZEROORONE
-ADD,VJOURNAL,COMMENT,NONE,ZEROORONE
-ADD,VJOURNAL,CONTACT,NONE,ZEROPLUS
-ADD,VJOURNAL,CREATED,NONE,ZEROORONE
-ADD,VJOURNAL,EXDATE,NONE,ZEROPLUS
-ADD,VJOURNAL,EXRULE,NONE,ZEROPLUS
-ADD,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-ADD,VJOURNAL,RDATE,NONE,ZEROPLUS
-ADD,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-ADD,VJOURNAL,RRULE,NONE,ZEROPLUS
-ADD,VJOURNAL,STATUS,NONE,ZEROORONE
-ADD,VJOURNAL,SUMMARY,NONE,ZEROORONE
-ADD,VJOURNAL,URL,NONE,ZEROORONE
-ADD,VJOURNAL,X,NONE,ZEROPLUS
-ADD,VJOURNAL,ATTENDEE,NONE,ZERO
-ADD,VJOURNAL,RECURRENCEID,NONE,ZERO
-ADD,VJOURNAL,NONE,VALARM,ZEROPLUS
-ADD,VJOURNAL,NONE,VTIMEZONE,ZEROORONE
-ADD,VJOURNAL,NONE,X,ZEROPLUS
-ADD,VJOURNAL,NONE,VEVENT,ZERO
-ADD,VJOURNAL,NONE,VFREEBUSY,ZERO
-ADD,VJOURNAL,NONE,VTODO,ZERO
-CANCEL,VJOURNAL,NONE,NONE,ONEPLUS
-CANCEL,VJOURNAL,DTSTAMP,NONE,ONE
-CANCEL,VJOURNAL,ORGANIZER,NONE,ONE
-CANCEL,VJOURNAL,SEQUENCE,NONE,ONE
-CANCEL,VJOURNAL,UID,NONE,ONE
-CANCEL,VJOURNAL,ATTACH,NONE,ZEROPLUS
-CANCEL,VJOURNAL,ATTENDEE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,CATEGORIES,NONE,ZEROPLUS #Non-standard
-CANCEL,VJOURNAL,CLASS,NONE,ZEROORONE
-CANCEL,VJOURNAL,COMMENT,NONE,ZEROORONE
-CANCEL,VJOURNAL,CONTACT,NONE,ZEROPLUS
-CANCEL,VJOURNAL,CREATED,NONE,ZEROORONE
-CANCEL,VJOURNAL,DESCRIPTION,NONE,ZEROORONE
-CANCEL,VJOURNAL,DTSTART,NONE,ZEROORONE
-CANCEL,VJOURNAL,EXDATE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,EXRULE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-CANCEL,VJOURNAL,RDATE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-CANCEL,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-CANCEL,VJOURNAL,RRULE,NONE,ZEROPLUS
-CANCEL,VJOURNAL,STATUS,NONE,ZEROORONE,must_be_cancel_if_present
-CANCEL,VJOURNAL,SUMMARY,NONE,ZEROORONE
-CANCEL,VJOURNAL,URL,NONE,ZEROORONE
-CANCEL,VJOURNAL,X,NONE,ZEROPLUS
-CANCEL,VJOURNAL,REQUESTSTATUS,NONE,ZERO
-CANCEL,VJOURNAL,NONE,VTIMEZONE,ZEROPLUS
-CANCEL,VJOURNAL,NONE,X,ZEROPLUS
-CANCEL,VJOURNAL,NONE,VALARM,ZERO
-CANCEL,VJOURNAL,NONE,VEVENT,ZERO
-CANCEL,VJOURNAL,NONE,VFREEBUSY,ZERO
-CANCEL,VJOURNAL,NONE,VTODO,ZERO
-NONE,VCALENDAR,ACTION,NONE,ZERO
-NONE,VCALENDAR,ATTACH,NONE,ZERO
-NONE,VCALENDAR,ATTENDEE,NONE,ZERO
-NONE,VCALENDAR,CALSCALE,NONE,ZEROORONE
-NONE,VCALENDAR,CATEGORIES,NONE,ZERO
-NONE,VCALENDAR,CLASS,NONE,ZERO
-NONE,VCALENDAR,COMMENT,NONE,ZERO
-NONE,VCALENDAR,COMPLETED,NONE,ZERO
-NONE,VCALENDAR,CONTACT,NONE,ZERO
-NONE,VCALENDAR,CREATED,NONE,ZERO
-NONE,VCALENDAR,DESCRIPTION,NONE,ZERO
-NONE,VCALENDAR,DTEND,NONE,ZERO
-NONE,VCALENDAR,DTSTAMP,NONE,ZERO
-NONE,VCALENDAR,DTSTART,NONE,ZERO
-NONE,VCALENDAR,DUE,NONE,ZERO
-NONE,VCALENDAR,DURATION,NONE,ZERO
-NONE,VCALENDAR,EXDATE,NONE,ZERO
-NONE,VCALENDAR,EXRULE,NONE,ZERO
-NONE,VCALENDAR,FREEBUSY,NONE,ZERO
-NONE,VCALENDAR,GEO,NONE,ZERO
-NONE,VCALENDAR,LASTMODIFIED,NONE,ZERO
-NONE,VCALENDAR,LOCATION,NONE,ZERO
-NONE,VCALENDAR,METHOD,NONE,ZEROORONE
-NONE,VCALENDAR,ORGANIZER,NONE,ZERO
-NONE,VCALENDAR,PERCENTCOMPLETE,NONE,ZERO
-NONE,VCALENDAR,PRIORITY,NONE,ZERO
-NONE,VCALENDAR,PRODID,NONE,ONE
-NONE,VCALENDAR,RDATE,NONE,ZERO
-NONE,VCALENDAR,RECURRENCEID,NONE,ZERO
-NONE,VCALENDAR,RELATEDTO,NONE,ZERO
-NONE,VCALENDAR,REPEAT,NONE,ZERO
-NONE,VCALENDAR,REQUESTSTATUS,NONE,ZERO
-NONE,VCALENDAR,RESOURCES,NONE,ZERO
-NONE,VCALENDAR,RRULE,NONE,ZERO
-NONE,VCALENDAR,SEQUENCE,NONE,ZERO
-NONE,VCALENDAR,STATUS,NONE,ZERO
-NONE,VCALENDAR,SUMMARY,NONE,ZERO
-NONE,VCALENDAR,TRANSP,NONE,ZERO
-NONE,VCALENDAR,TRIGGER,NONE,ZERO
-NONE,VCALENDAR,TZID,NONE,ZERO
-NONE,VCALENDAR,TZNAME,NONE,ZERO
-NONE,VCALENDAR,TZOFFSETFROM,NONE,ZERO
-NONE,VCALENDAR,TZOFFSETTO,NONE,ZERO
-NONE,VCALENDAR,TZURL,NONE,ZERO
-NONE,VCALENDAR,UID,NONE,ZERO
-NONE,VCALENDAR,URL,NONE,ZERO
-NONE,VCALENDAR,VERSION,NONE,ONE
-NONE,VCALENDAR,X,NONE,ZEROPLUS
-NONE,VEVENT,ACTION,NONE,ZERO
-NONE,VEVENT,ATTACH,NONE,ZEROPLUS
-NONE,VEVENT,ATTENDEE,NONE,ZEROPLUS
-NONE,VEVENT,CALSCALE,NONE,ZERO
-NONE,VEVENT,CATEGORIES,NONE,ZEROPLUS
-NONE,VEVENT,CLASS,NONE,ZEROORONE
-NONE,VEVENT,COMMENT,NONE,ZEROPLUS
-NONE,VEVENT,COMPLETED,NONE,ZERO
-NONE,VEVENT,CONTACT,NONE,ZEROPLUS
-NONE,VEVENT,CREATED,NONE,ZEROORONE
-NONE,VEVENT,DESCRIPTION,NONE,ZEROORONE
-NONE,VEVENT,DTEND,NONE,ONEEXCLUSIVE,no_duration
-NONE,VEVENT,DTSTAMP,NONE,ZEROORONE
-NONE,VEVENT,DTSTART,NONE,ZEROORONE
-NONE,VEVENT,DUE,NONE,ZERO
-NONE,VEVENT,DURATION,NONE,ONEEXCLUSIVE,no_duration
-NONE,VEVENT,EXDATE,NONE,ZEROPLUS
-NONE,VEVENT,EXRULE,NONE,ZEROPLUS
-NONE,VEVENT,FREEBUSY,NONE,ZERO
-NONE,VEVENT,GEO,NONE,ZEROORONE
-NONE,VEVENT,LASTMODIFIED,NONE,ZEROORONE
-NONE,VEVENT,LOCATION,NONE,ZEROORONE
-NONE,VEVENT,METHOD,NONE,ZERO
-NONE,VEVENT,ORGANIZER,NONE,ZEROORONE
-NONE,VEVENT,PERCENTCOMPLETE,NONE,ZERO
-NONE,VEVENT,PRIORITY,NONE,ZEROORONE
-NONE,VEVENT,PRODID,NONE,ZERO
-NONE,VEVENT,RDATE,NONE,ZEROPLUS
-NONE,VEVENT,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-NONE,VEVENT,RELATEDTO,NONE,ZEROPLUS
-NONE,VEVENT,REPEAT,NONE,ZERO
-NONE,VEVENT,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VEVENT,RESOURCES,NONE,ZEROPLUS
-NONE,VEVENT,RRULE,NONE,ZEROPLUS
-NONE,VEVENT,SEQUENCE,NONE,ZEROORONE
-NONE,VEVENT,STATUS,NONE,ZEROORONE
-NONE,VEVENT,SUMMARY,NONE,ZEROORONE
-NONE,VEVENT,TRANSP,NONE,ZEROORONE
-NONE,VEVENT,TRIGGER,NONE,ZERO
-NONE,VEVENT,TZID,NONE,ZERO
-NONE,VEVENT,TZNAME,NONE,ZERO
-NONE,VEVENT,TZOFFSETFROM,NONE,ZERO
-NONE,VEVENT,TZOFFSETTO,NONE,ZERO
-NONE,VEVENT,TZURL,NONE,ZERO
-NONE,VEVENT,UID,NONE,ZEROORONE
-NONE,VEVENT,URL,NONE,ZEROORONE
-NONE,VEVENT,VERSION,NONE,ZERO
-NONE,VEVENT,X,NONE,ZEROPLUS
-NONE,VTODO,ACTION,NONE,ZERO
-NONE,VTODO,ATTACH,NONE,ZEROPLUS
-NONE,VTODO,ATTENDEE,NONE,ZEROPLUS
-NONE,VTODO,CALSCALE,NONE,ZERO
-NONE,VTODO,CATEGORIES,NONE,ZEROPLUS
-NONE,VTODO,CLASS,NONE,ZEROORONE
-NONE,VTODO,COMMENT,NONE,ZEROPLUS
-NONE,VTODO,COMPLETED,NONE,ZEROORONE
-NONE,VTODO,CONTACT,NONE,ZEROPLUS
-NONE,VTODO,CREATED,NONE,ZEROORONE
-NONE,VTODO,DESCRIPTION,NONE,ZEROORONE
-NONE,VTODO,DTEND,NONE,ZERO
-NONE,VTODO,DTSTAMP,NONE,ZEROORONE
-NONE,VTODO,DTSTART,NONE,ZEROORONE
-NONE,VTODO,DUE,NONE,ONEEXCLUSIVE
-NONE,VTODO,DURATION,NONE,ONEEXCLUSIVE
-NONE,VTODO,EXDATE,NONE,ZEROPLUS
-NONE,VTODO,EXRULE,NONE,ZEROPLUS
-NONE,VTODO,FREEBUSY,NONE,ZERO
-NONE,VTODO,GEO,NONE,ZEROORONE
-NONE,VTODO,LASTMODIFIED,NONE,ZEROORONE
-NONE,VTODO,LOCATION,NONE,ZEROORONE
-NONE,VTODO,METHOD,NONE,ZERO
-NONE,VTODO,ORGANIZER,NONE,ZEROORONE
-NONE,VTODO,PERCENTCOMPLETE,NONE,ZEROORONE
-NONE,VTODO,PRIORITY,NONE,ZEROORONE
-NONE,VTODO,PRODID,NONE,ZERO
-NONE,VTODO,RDATE,NONE,ZEROPLUS
-NONE,VTODO,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-NONE,VTODO,RELATEDTO,NONE,ZEROPLUS
-NONE,VTODO,REPEAT,NONE,ZERO
-NONE,VTODO,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VTODO,RESOURCES,NONE,ZEROPLUS
-NONE,VTODO,RRULE,NONE,ZEROPLUS
-NONE,VTODO,SEQUENCE,NONE,ZEROORONE
-NONE,VTODO,STATUS,NONE,ZEROORONE
-NONE,VTODO,SUMMARY,NONE,ZEROORONE
-NONE,VTODO,TRANSP,NONE,ZERO
-NONE,VTODO,TRIGGER,NONE,ZERO
-NONE,VTODO,TZID,NONE,ZERO
-NONE,VTODO,TZNAME,NONE,ZERO
-NONE,VTODO,TZOFFSETFROM,NONE,ZERO
-NONE,VTODO,TZOFFSETTO,NONE,ZERO
-NONE,VTODO,TZURL,NONE,ZERO
-NONE,VTODO,UID,NONE,ZEROORONE
-NONE,VTODO,URL,NONE,ZEROORONE
-NONE,VTODO,VERSION,NONE,ZERO
-NONE,VTODO,X,NONE,ZEROPLUS
-NONE,VJOURNAL,ACTION,NONE,ZERO
-NONE,VJOURNAL,ATTACH,NONE,ZEROPLUS
-NONE,VJOURNAL,ATTENDEE,NONE,ZEROPLUS
-NONE,VJOURNAL,CALSCALE,NONE,ZERO
-NONE,VJOURNAL,CATEGORIES,NONE,ZEROPLUS
-NONE,VJOURNAL,CLASS,NONE,ZEROORONE
-NONE,VJOURNAL,COMMENT,NONE,ZEROPLUS
-NONE,VJOURNAL,COMPLETED,NONE,ZERO
-NONE,VJOURNAL,CONTACT,NONE,ZEROPLUS
-NONE,VJOURNAL,CREATED,NONE,ZEROORONE
-NONE,VJOURNAL,DESCRIPTION,NONE,ZEROORONE
-NONE,VJOURNAL,DTEND,NONE,ZERO
-NONE,VJOURNAL,DTSTAMP,NONE,ZEROORONE
-NONE,VJOURNAL,DTSTART,NONE,ZEROORONE
-NONE,VJOURNAL,DUE,NONE,ONEEXCLUSIVE
-NONE,VJOURNAL,DURATION,NONE,ONEEXCLUSIVE
-NONE,VJOURNAL,EXDATE,NONE,ZEROPLUS
-NONE,VJOURNAL,EXRULE,NONE,ZEROPLUS
-NONE,VJOURNAL,FREEBUSY,NONE,ZERO
-NONE,VJOURNAL,GEO,NONE,ZERO
-NONE,VJOURNAL,LASTMODIFIED,NONE,ZEROORONE
-NONE,VJOURNAL,LOCATION,NONE,ZERO
-NONE,VJOURNAL,METHOD,NONE,ZERO
-NONE,VJOURNAL,ORGANIZER,NONE,ZEROORONE
-NONE,VJOURNAL,PERCENTCOMPLETE,NONE,ZERO
-NONE,VJOURNAL,PRIORITY,NONE,ZERO
-NONE,VJOURNAL,PRODID,NONE,ZERO
-NONE,VJOURNAL,RDATE,NONE,ZEROPLUS
-NONE,VJOURNAL,RECURRENCEID,NONE,ZEROORONE,must_be_recurring
-NONE,VJOURNAL,RELATEDTO,NONE,ZEROPLUS
-NONE,VJOURNAL,REPEAT,NONE,ZERO
-NONE,VJOURNAL,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VJOURNAL,RESOURCES,NONE,ZERO
-NONE,VJOURNAL,RRULE,NONE,ZEROPLUS
-NONE,VJOURNAL,SEQUENCE,NONE,ZEROORONE
-NONE,VJOURNAL,STATUS,NONE,ZEROORONE
-NONE,VJOURNAL,SUMMARY,NONE,ZEROORONE
-NONE,VJOURNAL,TRANSP,NONE,ZERO
-NONE,VJOURNAL,TRIGGER,NONE,ZERO
-NONE,VJOURNAL,TZID,NONE,ZERO
-NONE,VJOURNAL,TZNAME,NONE,ZERO
-NONE,VJOURNAL,TZOFFSETFROM,NONE,ZERO
-NONE,VJOURNAL,TZOFFSETTO,NONE,ZERO
-NONE,VJOURNAL,TZURL,NONE,ZERO
-NONE,VJOURNAL,UID,NONE,ZEROORONE
-NONE,VJOURNAL,URL,NONE,ZEROORONE
-NONE,VJOURNAL,VERSION,NONE,ZERO
-NONE,VJOURNAL,X,NONE,ZEROPLUS
-NONE,VFREEBUSY,ACTION,NONE,ZERO
-NONE,VFREEBUSY,ATTACH,NONE,ZERO
-NONE,VFREEBUSY,ATTENDEE,NONE,ZEROPLUS
-NONE,VFREEBUSY,CALSCALE,NONE,ZERO
-NONE,VFREEBUSY,CATEGORIES,NONE,ZERO
-NONE,VFREEBUSY,CLASS,NONE,ZERO
-NONE,VFREEBUSY,COMMENT,NONE,ZEROPLUS
-NONE,VFREEBUSY,COMPLETED,NONE,ZERO
-NONE,VFREEBUSY,CONTACT,NONE,ZEROORONE
-NONE,VFREEBUSY,CREATED,NONE,ZERO
-NONE,VFREEBUSY,DESCRIPTION,NONE,ZERO
-NONE,VFREEBUSY,DTEND,NONE,ZEROORONE
-NONE,VFREEBUSY,DTSTAMP,NONE,ZERO
-NONE,VFREEBUSY,DTSTART,NONE,ZEROORONE
-NONE,VFREEBUSY,DUE,NONE,ZERO
-NONE,VFREEBUSY,DURATION,NONE,ZEROORONE
-NONE,VFREEBUSY,EXDATE,NONE,ZERO
-NONE,VFREEBUSY,EXRULE,NONE,ZERO
-NONE,VFREEBUSY,FREEBUSY,NONE,ZEROPLUS
-NONE,VFREEBUSY,GEO,NONE,ZERO
-NONE,VFREEBUSY,LASTMODIFIED,NONE,ZERO
-NONE,VFREEBUSY,LOCATION,NONE,ZERO
-NONE,VFREEBUSY,METHOD,NONE,ZERO
-NONE,VFREEBUSY,ORGANIZER,NONE,ZEROORONE
-NONE,VFREEBUSY,PERCENTCOMPLETE,NONE,ZERO
-NONE,VFREEBUSY,PRIORITY,NONE,ZERO
-NONE,VFREEBUSY,PRODID,NONE,ZERO
-NONE,VFREEBUSY,RDATE,NONE,ZERO
-NONE,VFREEBUSY,RECURRENCEID,NONE,ZERO
-NONE,VFREEBUSY,RELATEDTO,NONE,ZERO
-NONE,VFREEBUSY,REPEAT,NONE,ZERO
-NONE,VFREEBUSY,REQUESTSTATUS,NONE,ZEROPLUS
-NONE,VFREEBUSY,RESOURCES,NONE,ZERO
-NONE,VFREEBUSY,RRULE,NONE,ZERO
-NONE,VFREEBUSY,SEQUENCE,NONE,ZERO
-NONE,VFREEBUSY,STATUS,NONE,ZERO
-NONE,VFREEBUSY,SUMMARY,NONE,ZERO
-NONE,VFREEBUSY,TRANSP,NONE,ZERO
-NONE,VFREEBUSY,TRIGGER,NONE,ZERO
-NONE,VFREEBUSY,TZID,NONE,ZERO
-NONE,VFREEBUSY,TZNAME,NONE,ZERO
-NONE,VFREEBUSY,TZOFFSETFROM,NONE,ZERO
-NONE,VFREEBUSY,TZOFFSETTO,NONE,ZERO
-NONE,VFREEBUSY,TZURL,NONE,ZERO
-NONE,VFREEBUSY,UID,NONE,ZEROORONE
-NONE,VFREEBUSY,URL,NONE,ZEROORONE
-NONE,VFREEBUSY,VERSION,NONE,ZERO
-NONE,VFREEBUSY,X,NONE,ZEROPLUS
-NONE,VTIMEZONE,ACTION,NONE,ZERO
-NONE,VTIMEZONE,ATTACH,NONE,ZERO
-NONE,VTIMEZONE,ATTENDEE,NONE,ZERO
-NONE,VTIMEZONE,CALSCALE,NONE,ZERO
-NONE,VTIMEZONE,CATEGORIES,NONE,ZERO
-NONE,VTIMEZONE,CLASS,NONE,ZERO
-NONE,VTIMEZONE,COMMENT,NONE,ZERO
-NONE,VTIMEZONE,COMPLETED,NONE,ZERO
-NONE,VTIMEZONE,CONTACT,NONE,ZERO
-NONE,VTIMEZONE,CREATED,NONE,ZERO
-NONE,VTIMEZONE,DESCRIPTION,NONE,ZERO
-NONE,VTIMEZONE,DTEND,NONE,ZERO
-NONE,VTIMEZONE,DTSTAMP,NONE,ZERO
-NONE,VTIMEZONE,DTSTART,NONE,ZERO
-NONE,VTIMEZONE,DUE,NONE,ZERO
-NONE,VTIMEZONE,DURATION,NONE,ZERO
-NONE,VTIMEZONE,EXDATE,NONE,ZERO
-NONE,VTIMEZONE,EXRULE,NONE,ZERO
-NONE,VTIMEZONE,FREEBUSY,NONE,ZERO
-NONE,VTIMEZONE,GEO,NONE,ZERO
-NONE,VTIMEZONE,LASTMODIFIED,NONE,ZEROORONE
-NONE,VTIMEZONE,LOCATION,NONE,ZERO
-NONE,VTIMEZONE,METHOD,NONE,ZERO
-NONE,VTIMEZONE,ORGANIZER,NONE,ZERO
-NONE,VTIMEZONE,PERCENTCOMPLETE,NONE,ZERO
-NONE,VTIMEZONE,PRIORITY,NONE,ZERO
-NONE,VTIMEZONE,PRODID,NONE,ZERO
-NONE,VTIMEZONE,RDATE,NONE,ZERO
-NONE,VTIMEZONE,RECURRENCEID,NONE,ZERO
-NONE,VTIMEZONE,RELATEDTO,NONE,ZERO
-NONE,VTIMEZONE,REPEAT,NONE,ZERO
-NONE,VTIMEZONE,REQUESTSTATUS,NONE,ZERO
-NONE,VTIMEZONE,RESOURCES,NONE,ZERO
-NONE,VTIMEZONE,RRULE,NONE,ZERO
-NONE,VTIMEZONE,SEQUENCE,NONE,ZERO
-NONE,VTIMEZONE,STATUS,NONE,ZERO
-NONE,VTIMEZONE,SUMMARY,NONE,ZERO
-NONE,VTIMEZONE,TRANSP,NONE,ZERO
-NONE,VTIMEZONE,TRIGGER,NONE,ZERO
-NONE,VTIMEZONE,TZID,NONE,ONE
-NONE,VTIMEZONE,TZNAME,NONE,ZERO
-NONE,VTIMEZONE,TZOFFSETFROM,NONE,ZERO
-NONE,VTIMEZONE,TZOFFSETTO,NONE,ZERO
-NONE,VTIMEZONE,TZURL,NONE,ZEROPLUS
-NONE,VTIMEZONE,UID,NONE,ZERO
-NONE,VTIMEZONE,URL,NONE,ZERO
-NONE,VTIMEZONE,VERSION,NONE,ZERO
-NONE,VTIMEZONE,X,NONE,ZEROORONE
-NONE,XSTANDARD,ACTION,NONE,ZERO
-NONE,XSTANDARD,ATTACH,NONE,ZERO
-NONE,XSTANDARD,ATTENDEE,NONE,ZERO
-NONE,XSTANDARD,CALSCALE,NONE,ZERO
-NONE,XSTANDARD,CATEGORIES,NONE,ZERO
-NONE,XSTANDARD,CLASS,NONE,ZERO
-NONE,XSTANDARD,COMMENT,NONE,ZEROPLUS
-NONE,XSTANDARD,COMPLETED,NONE,ZERO
-NONE,XSTANDARD,CONTACT,NONE,ZERO
-NONE,XSTANDARD,CREATED,NONE,ZERO
-NONE,XSTANDARD,DESCRIPTION,NONE,ZERO
-NONE,XSTANDARD,DTEND,NONE,ZERO
-NONE,XSTANDARD,DTSTAMP,NONE,ZERO
-NONE,XSTANDARD,DTSTART,NONE,ONE
-NONE,XSTANDARD,DUE,NONE,ZERO
-NONE,XSTANDARD,DURATION,NONE,ZERO
-NONE,XSTANDARD,EXDATE,NONE,ZERO
-NONE,XSTANDARD,EXRULE,NONE,ZERO
-NONE,XSTANDARD,FREEBUSY,NONE,ZERO
-NONE,XSTANDARD,GEO,NONE,ZERO
-NONE,XSTANDARD,LASTMODIFIED,NONE,ZERO
-NONE,XSTANDARD,LOCATION,NONE,ZERO
-NONE,XSTANDARD,METHOD,NONE,ZERO
-NONE,XSTANDARD,ORGANIZER,NONE,ZERO
-NONE,XSTANDARD,PERCENTCOMPLETE,NONE,ZERO
-NONE,XSTANDARD,PRIORITY,NONE,ZERO
-NONE,XSTANDARD,PRODID,NONE,ZERO
-NONE,XSTANDARD,RDATE,NONE,ZEROPLUS
-NONE,XSTANDARD,RECURRENCEID,NONE,ZERO
-NONE,XSTANDARD,RELATEDTO,NONE,ZERO
-NONE,XSTANDARD,REPEAT,NONE,ZERO
-NONE,XSTANDARD,REQUESTSTATUS,NONE,ZERO
-NONE,XSTANDARD,RESOURCES,NONE,ZERO
-NONE,XSTANDARD,RRULE,NONE,ZEROPLUS
-NONE,XSTANDARD,SEQUENCE,NONE,ZERO
-NONE,XSTANDARD,STATUS,NONE,ZERO
-NONE,XSTANDARD,SUMMARY,NONE,ZERO
-NONE,XSTANDARD,TRANSP,NONE,ZERO
-NONE,XSTANDARD,TRIGGER,NONE,ZERO
-NONE,XSTANDARD,TZID,NONE,ZERO
-NONE,XSTANDARD,TZNAME,NONE,ZEROPLUS
-NONE,XSTANDARD,TZOFFSETFROM,NONE,ONE
-NONE,XSTANDARD,TZOFFSETTO,NONE,ONE
-NONE,XSTANDARD,TZURL,NONE,ZERO
-NONE,XSTANDARD,UID,NONE,ZERO
-NONE,XSTANDARD,URL,NONE,ZERO
-NONE,XSTANDARD,VERSION,NONE,ZERO
-NONE,XSTANDARD,X,NONE,ZEROPLUS
-NONE,XDAYLIGHT,ACTION,NONE,ZERO
-NONE,XDAYLIGHT,ATTACH,NONE,ZERO
-NONE,XDAYLIGHT,ATTENDEE,NONE,ZERO
-NONE,XDAYLIGHT,CALSCALE,NONE,ZERO
-NONE,XDAYLIGHT,CATEGORIES,NONE,ZERO
-NONE,XDAYLIGHT,CLASS,NONE,ZERO
-NONE,XDAYLIGHT,COMMENT,NONE,ZEROPLUS
-NONE,XDAYLIGHT,COMPLETED,NONE,ZERO
-NONE,XDAYLIGHT,CONTACT,NONE,ZERO
-NONE,XDAYLIGHT,CREATED,NONE,ZERO
-NONE,XDAYLIGHT,DESCRIPTION,NONE,ZERO
-NONE,XDAYLIGHT,DTEND,NONE,ZERO
-NONE,XDAYLIGHT,DTSTAMP,NONE,ZERO
-NONE,XDAYLIGHT,DTSTART,NONE,ONE
-NONE,XDAYLIGHT,DUE,NONE,ZERO
-NONE,XDAYLIGHT,DURATION,NONE,ZERO
-NONE,XDAYLIGHT,EXDATE,NONE,ZERO
-NONE,XDAYLIGHT,EXRULE,NONE,ZERO
-NONE,XDAYLIGHT,FREEBUSY,NONE,ZERO
-NONE,XDAYLIGHT,GEO,NONE,ZERO
-NONE,XDAYLIGHT,LASTMODIFIED,NONE,ZERO
-NONE,XDAYLIGHT,LOCATION,NONE,ZERO
-NONE,XDAYLIGHT,METHOD,NONE,ZERO
-NONE,XDAYLIGHT,ORGANIZER,NONE,ZERO
-NONE,XDAYLIGHT,PERCENTCOMPLETE,NONE,ZERO
-NONE,XDAYLIGHT,PRIORITY,NONE,ZERO
-NONE,XDAYLIGHT,PRODID,NONE,ZERO
-NONE,XDAYLIGHT,RDATE,NONE,ZEROPLUS
-NONE,XDAYLIGHT,RECURRENCEID,NONE,ZERO
-NONE,XDAYLIGHT,RELATEDTO,NONE,ZERO
-NONE,XDAYLIGHT,REPEAT,NONE,ZERO
-NONE,XDAYLIGHT,REQUESTSTATUS,NONE,ZERO
-NONE,XDAYLIGHT,RESOURCES,NONE,ZERO
-NONE,XDAYLIGHT,RRULE,NONE,ZEROPLUS
-NONE,XDAYLIGHT,SEQUENCE,NONE,ZERO
-NONE,XDAYLIGHT,STATUS,NONE,ZERO
-NONE,XDAYLIGHT,SUMMARY,NONE,ZERO
-NONE,XDAYLIGHT,TRANSP,NONE,ZERO
-NONE,XDAYLIGHT,TRIGGER,NONE,ZERO
-NONE,XDAYLIGHT,TZID,NONE,ZERO
-NONE,XDAYLIGHT,TZNAME,NONE,ZEROPLUS
-NONE,XDAYLIGHT,TZOFFSETFROM,NONE,ONE
-NONE,XDAYLIGHT,TZOFFSETTO,NONE,ONE
-NONE,XDAYLIGHT,TZURL,NONE,ZERO
-NONE,XDAYLIGHT,UID,NONE,ZERO
-NONE,XDAYLIGHT,URL,NONE,ZERO
-NONE,XDAYLIGHT,VERSION,NONE,ZERO
-NONE,XDAYLIGHT,X,NONE,ZEROPLUS
-NONE,XAUDIOALARM,ACTION,NONE,ONE
-NONE,XAUDIOALARM,ATTACH,NONE,ZEROORONE
-NONE,XAUDIOALARM,ATTENDEE,NONE,ZERO
-NONE,XAUDIOALARM,CALSCALE,NONE,ZERO
-NONE,XAUDIOALARM,CATEGORIES,NONE,ZERO
-NONE,XAUDIOALARM,CLASS,NONE,ZERO
-NONE,XAUDIOALARM,COMMENT,NONE,ZERO
-NONE,XAUDIOALARM,COMPLETED,NONE,ZERO
-NONE,XAUDIOALARM,CONTACT,NONE,ZERO
-NONE,XAUDIOALARM,CREATED,NONE,ZERO
-NONE,XAUDIOALARM,DESCRIPTION,NONE,ZERO
-NONE,XAUDIOALARM,DTEND,NONE,ZERO
-NONE,XAUDIOALARM,DTSTAMP,NONE,ZERO
-NONE,XAUDIOALARM,DTSTART,NONE,ZERO
-NONE,XAUDIOALARM,DUE,NONE,ZERO
-NONE,XAUDIOALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XAUDIOALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XAUDIOALARM,EXDATE,NONE,ZERO
-NONE,XAUDIOALARM,EXRULE,NONE,ZERO
-NONE,XAUDIOALARM,FREEBUSY,NONE,ZERO
-NONE,XAUDIOALARM,GEO,NONE,ZERO
-NONE,XAUDIOALARM,LASTMODIFIED,NONE,ZERO
-NONE,XAUDIOALARM,LOCATION,NONE,ZERO
-NONE,XAUDIOALARM,METHOD,NONE,ZERO
-NONE,XAUDIOALARM,ORGANIZER,NONE,ZERO
-NONE,XAUDIOALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XAUDIOALARM,PRIORITY,NONE,ZERO
-NONE,XAUDIOALARM,PRODID,NONE,ZERO
-NONE,XAUDIOALARM,RDATE,NONE,ZERO
-NONE,XAUDIOALARM,RECURRENCEID,NONE,ZERO
-NONE,XAUDIOALARM,RELATEDTO,NONE,ZERO
-NONE,XAUDIOALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XAUDIOALARM,RESOURCES,NONE,ZERO
-NONE,XAUDIOALARM,RRULE,NONE,ZERO
-NONE,XAUDIOALARM,SEQUENCE,NONE,ZERO
-NONE,XAUDIOALARM,STATUS,NONE,ZERO
-NONE,XAUDIOALARM,SUMMARY,NONE,ZERO
-NONE,XAUDIOALARM,TRANSP,NONE,ZERO
-NONE,XAUDIOALARM,TRIGGER,NONE,ONE
-NONE,XAUDIOALARM,TZID,NONE,ZERO
-NONE,XAUDIOALARM,TZNAME,NONE,ZERO
-NONE,XAUDIOALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XAUDIOALARM,TZOFFSETTO,NONE,ZERO
-NONE,XAUDIOALARM,TZURL,NONE,ZERO
-NONE,XAUDIOALARM,UID,NONE,ZERO
-NONE,XAUDIOALARM,URL,NONE,ZERO
-NONE,XAUDIOALARM,VERSION,NONE,ZERO
-NONE,XAUDIOALARM,X,NONE,ZEROPLUS
-NONE,XDISPLAYALARM,ACTION,NONE,ONE
-NONE,XDISPLAYALARM,ATTACH,NONE,ZERO
-NONE,XDISPLAYALARM,ATTENDEE,NONE,ZERO
-NONE,XDISPLAYALARM,CALSCALE,NONE,ZERO
-NONE,XDISPLAYALARM,CATEGORIES,NONE,ZERO
-NONE,XDISPLAYALARM,CLASS,NONE,ZERO
-NONE,XDISPLAYALARM,COMMENT,NONE,ZERO
-NONE,XDISPLAYALARM,COMPLETED,NONE,ZERO
-NONE,XDISPLAYALARM,CONTACT,NONE,ZERO
-NONE,XDISPLAYALARM,CREATED,NONE,ZERO
-NONE,XDISPLAYALARM,DESCRIPTION,NONE,ONE
-NONE,XDISPLAYALARM,DTEND,NONE,ZERO
-NONE,XDISPLAYALARM,DTSTAMP,NONE,ZERO
-NONE,XDISPLAYALARM,DTSTART,NONE,ZERO
-NONE,XDISPLAYALARM,DUE,NONE,ZERO
-NONE,XDISPLAYALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XDISPLAYALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XDISPLAYALARM,EXDATE,NONE,ZERO
-NONE,XDISPLAYALARM,EXRULE,NONE,ZERO
-NONE,XDISPLAYALARM,FREEBUSY,NONE,ZERO
-NONE,XDISPLAYALARM,GEO,NONE,ZERO
-NONE,XDISPLAYALARM,LASTMODIFIED,NONE,ZERO
-NONE,XDISPLAYALARM,LOCATION,NONE,ZERO
-NONE,XDISPLAYALARM,METHOD,NONE,ZERO
-NONE,XDISPLAYALARM,ORGANIZER,NONE,ZERO
-NONE,XDISPLAYALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XDISPLAYALARM,PRIORITY,NONE,ZERO
-NONE,XDISPLAYALARM,PRODID,NONE,ZERO
-NONE,XDISPLAYALARM,RDATE,NONE,ZERO
-NONE,XDISPLAYALARM,RECURRENCEID,NONE,ZERO
-NONE,XDISPLAYALARM,RELATEDTO,NONE,ZERO
-NONE,XDISPLAYALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XDISPLAYALARM,RESOURCES,NONE,ZERO
-NONE,XDISPLAYALARM,RRULE,NONE,ZERO
-NONE,XDISPLAYALARM,SEQUENCE,NONE,ZERO
-NONE,XDISPLAYALARM,STATUS,NONE,ZERO
-NONE,XDISPLAYALARM,SUMMARY,NONE,ZERO
-NONE,XDISPLAYALARM,TRANSP,NONE,ZERO
-NONE,XDISPLAYALARM,TRIGGER,NONE,ONE
-NONE,XDISPLAYALARM,TZID,NONE,ZERO
-NONE,XDISPLAYALARM,TZNAME,NONE,ZERO
-NONE,XDISPLAYALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XDISPLAYALARM,TZOFFSETTO,NONE,ZERO
-NONE,XDISPLAYALARM,TZURL,NONE,ZERO
-NONE,XDISPLAYALARM,UID,NONE,ZERO
-NONE,XDISPLAYALARM,URL,NONE,ZERO
-NONE,XDISPLAYALARM,VERSION,NONE,ZERO
-NONE,XDISPLAYALARM,X,NONE,ZEROPLUS
-NONE,XEMAILALARM,ACTION,NONE,ONE
-NONE,XEMAILALARM,ATTACH,NONE,ZEROPLUS
-NONE,XEMAILALARM,ATTENDEE,NONE,ONEPLUS
-NONE,XEMAILALARM,CALSCALE,NONE,ZERO
-NONE,XEMAILALARM,CATEGORIES,NONE,ZERO
-NONE,XEMAILALARM,CLASS,NONE,ZERO
-NONE,XEMAILALARM,COMMENT,NONE,ZERO
-NONE,XEMAILALARM,COMPLETED,NONE,ZERO
-NONE,XEMAILALARM,CONTACT,NONE,ZERO
-NONE,XEMAILALARM,CREATED,NONE,ZERO
-NONE,XEMAILALARM,DESCRIPTION,NONE,ONE
-NONE,XEMAILALARM,DTEND,NONE,ZERO
-NONE,XEMAILALARM,DTSTAMP,NONE,ZERO
-NONE,XEMAILALARM,DTSTART,NONE,ZERO
-NONE,XEMAILALARM,DUE,NONE,ZERO
-NONE,XEMAILALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XEMAILALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XEMAILALARM,EXDATE,NONE,ZERO
-NONE,XEMAILALARM,EXRULE,NONE,ZERO
-NONE,XEMAILALARM,FREEBUSY,NONE,ZERO
-NONE,XEMAILALARM,GEO,NONE,ZERO
-NONE,XEMAILALARM,LASTMODIFIED,NONE,ZERO
-NONE,XEMAILALARM,LOCATION,NONE,ZERO
-NONE,XEMAILALARM,METHOD,NONE,ZERO
-NONE,XEMAILALARM,ORGANIZER,NONE,ZERO
-NONE,XEMAILALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XEMAILALARM,PRIORITY,NONE,ZERO
-NONE,XEMAILALARM,PRODID,NONE,ZERO
-NONE,XEMAILALARM,RDATE,NONE,ZERO
-NONE,XEMAILALARM,RECURRENCEID,NONE,ZERO
-NONE,XEMAILALARM,RELATEDTO,NONE,ZERO
-NONE,XEMAILALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XEMAILALARM,RESOURCES,NONE,ZERO
-NONE,XEMAILALARM,RRULE,NONE,ZERO
-NONE,XEMAILALARM,SEQUENCE,NONE,ZERO
-NONE,XEMAILALARM,STATUS,NONE,ZERO
-NONE,XEMAILALARM,SUMMARY,NONE,ONE
-NONE,XEMAILALARM,TRANSP,NONE,ZERO
-NONE,XEMAILALARM,TRIGGER,NONE,ONE
-NONE,XEMAILALARM,TZID,NONE,ZERO
-NONE,XEMAILALARM,TZNAME,NONE,ZERO
-NONE,XEMAILALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XEMAILALARM,TZOFFSETTO,NONE,ZERO
-NONE,XEMAILALARM,TZURL,NONE,ZERO
-NONE,XEMAILALARM,UID,NONE,ZERO
-NONE,XEMAILALARM,URL,NONE,ZERO
-NONE,XEMAILALARM,VERSION,NONE,ZERO
-NONE,XEMAILALARM,X,NONE,ZEROPLUS
-NONE,XPROCEDUREALARM,ACTION,NONE,ONE
-NONE,XPROCEDUREALARM,ATTACH,NONE,ZEROORONE
-NONE,XPROCEDUREALARM,ATTENDEE,NONE,ZERO
-NONE,XPROCEDUREALARM,CALSCALE,NONE,ZERO
-NONE,XPROCEDUREALARM,CATEGORIES,NONE,ZERO
-NONE,XPROCEDUREALARM,CLASS,NONE,ZERO
-NONE,XPROCEDUREALARM,COMMENT,NONE,ZERO
-NONE,XPROCEDUREALARM,COMPLETED,NONE,ZERO
-NONE,XPROCEDUREALARM,CONTACT,NONE,ZERO
-NONE,XPROCEDUREALARM,CREATED,NONE,ZERO
-NONE,XPROCEDUREALARM,DESCRIPTION,NONE,ZEROORONE
-NONE,XPROCEDUREALARM,DTEND,NONE,ZERO
-NONE,XPROCEDUREALARM,DTSTAMP,NONE,ZERO
-NONE,XPROCEDUREALARM,DTSTART,NONE,ZERO
-NONE,XPROCEDUREALARM,DUE,NONE,ZERO
-NONE,XPROCEDUREALARM,DURATION,NONE,ONEMUTUAL,must_have_repeat
-NONE,XPROCEDUREALARM,REPEAT,NONE,ONEMUTUAL,must_have_duration
-NONE,XPROCEDUREALARM,EXDATE,NONE,ZERO
-NONE,XPROCEDUREALARM,EXRULE,NONE,ZERO
-NONE,XPROCEDUREALARM,FREEBUSY,NONE,ZERO
-NONE,XPROCEDUREALARM,GEO,NONE,ZERO
-NONE,XPROCEDUREALARM,LASTMODIFIED,NONE,ZERO
-NONE,XPROCEDUREALARM,LOCATION,NONE,ZERO
-NONE,XPROCEDUREALARM,METHOD,NONE,ZERO
-NONE,XPROCEDUREALARM,ORGANIZER,NONE,ZERO
-NONE,XPROCEDUREALARM,PERCENTCOMPLETE,NONE,ZERO
-NONE,XPROCEDUREALARM,PRIORITY,NONE,ZERO
-NONE,XPROCEDUREALARM,PRODID,NONE,ZERO
-NONE,XPROCEDUREALARM,RDATE,NONE,ZERO
-NONE,XPROCEDUREALARM,RECURRENCEID,NONE,ZERO
-NONE,XPROCEDUREALARM,RELATEDTO,NONE,ZERO
-NONE,XPROCEDUREALARM,REQUESTSTATUS,NONE,ZERO
-NONE,XPROCEDUREALARM,RESOURCES,NONE,ZERO
-NONE,XPROCEDUREALARM,RRULE,NONE,ZERO
-NONE,XPROCEDUREALARM,SEQUENCE,NONE,ZERO
-NONE,XPROCEDUREALARM,STATUS,NONE,ZERO
-NONE,XPROCEDUREALARM,SUMMARY,NONE,ZERO
-NONE,XPROCEDUREALARM,TRANSP,NONE,ZERO
-NONE,XPROCEDUREALARM,TRIGGER,NONE,ONE
-NONE,XPROCEDUREALARM,TZID,NONE,ZERO
-NONE,XPROCEDUREALARM,TZNAME,NONE,ZERO
-NONE,XPROCEDUREALARM,TZOFFSETFROM,NONE,ZERO
-NONE,XPROCEDUREALARM,TZOFFSETTO,NONE,ZERO
-NONE,XPROCEDUREALARM,TZURL,NONE,ZERO
-NONE,XPROCEDUREALARM,UID,NONE,ZERO
-NONE,XPROCEDUREALARM,URL,NONE,ZERO
-NONE,XPROCEDUREALARM,VERSION,NONE,ZERO
-NONE,XPROCEDUREALARM,X,NONE,ZEROPLUS
diff --git a/src/plugins/vcalendar/libical/design-data/status.txt b/src/plugins/vcalendar/libical/design-data/status.txt
deleted file mode 100644 (file)
index 9e7bbf8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-2.0 STATOK Operation was successfully performed.
-2.0.1 STARTSENDATA Start ICAL input; end with <CRLF>.<CRLF>
-2.0.11 OKDATAFOLLOWS The request was processed successfully. Reply data follows on the next line and terminates with <CRLF>.<CRLF>
-2.0.2 REPLYPENDING A timeout has occurred. The server is still working on the reply. Use CONTINUE to continue waiting for the reply or ABORT to terminate the command.
-2.0.3 ABORTED The  command currently underway was successsfully aborted.
-2.0.4 WILLATTEMPT The specified Calendar is not here but an attempt will be made to deliver the request or reply to the Calendar anyway.
-2.0.5 TRUSTEDWILLQUEUE The request or reply will be queued and delivered to the target calendar when its iRIP server contacts this server and issues the SWITCH command. 
-2.0.6 WILLATTEMPT The specified Calendar is not here but an attempt will be made to deliver the request or reply to the Calendar anyway. 
-2.0.7 QUEUED The message has been queued for delivery.
-2.0.8 QUEUEEMPTY There are no more queued messages.
-2.1 FALLBACK Success. Fallback taken  on one or more property  values.
-2.2 NOCOMMANDINPROGRESS An ABORT or CONTINUE was received when no command was in progress
-2.2 IGPROP Success. Invalid property ignored.
-2.3 IGPARAM Success. invalid property parameter ignored.
-2.4 IGXPROP Success. Unknown non-standard property ignored.
-2.5 IGXPARAM Success. Unknown non standard property value  ignored.
-2.6 IGCOMP Success. Invalid calendar component ignored.
-2.7 FORWARD Success. Request forwarded to Calendar User.
-2.8 ONEEVENT Success. Repeating event ignored. Scheduled as a  single component.
-2.9 TRUNC Success. Truncated end date time to date boundary.
-2.10 ONETODO Success. Repeating VTODO ignored. Scheduled as a  single VTODO.
-2.11 TRUNCRRULE Success. Unbounded RRULE clipped at some finite  number of instances  
-3.0 INVPROPNAME Invalid property name.
-3.1 INVPROPVAL Invalid property value.
-3.2 INVPARAM Invalid property parameter.
-3.3 INVPARAMVAL Invalid property parameter value.
-3.4 INVCOMP Invalid calendar component sequence.
-3.5 INVTIME Invalid date or time.
-3.6 INVRULE Invalid rule.
-3.7 INVCU Invalid Calendar User.
-3.8 NOAUTH No authority.
-3.9 BADVERSION Unsupported version.
-3.10 TOOBIG Request entity too large.
-3.11 MISSREQCOMP Required component or property missing.
-3.12 UNKCOMP Unknown component or property found.
-3.13 BADCOMP Unsupported component or property found
-3.14 NOCAP Unsupported capability.
-4.0 BUSY Event conflict. Date/time  is busy.
-5.0 MAYBE Request MAY supported.
-5.1 UNAVAIL Service unavailable.
-5.2 NOSERVICE Invalid calendar service.
-5.3 NOSCHED No scheduling support for  user.
-6.1 AUTHENTICATEFAILURE Unsupported authentication mechanism, credentials rejected
-6.2 AUTHENTICATIONABORTED Sender aborted authentication, authentication exchange cancelled
-8.0 GENERALFAILURE A failure has occurred in the Receiver that prevents the operation from succeeding.
-8.1 SERVERTOOBUSY The iRIP Receiver is too busy.
-8.2 ICALOBJECTTOOBIG Object has exceeded the server's size limit.
-8.3 DATETOOLARGE A DATETIME value was too far in the future to be represented on this Calendar.
-8.4 DATETOOSMALL A DATETIME value was too far in the past to be represented on this Calendar.
-9.0 INVALIDIRIPCOMMAND An unrecongnized command was received.
-9.1 UNEXPECTEDCOMMAND The command is not allowed for the server's current state. 
-10.1 REFERRAL Accompanied by an alternate address. 
-10.2 SERVERSHUTDOWN The server is shutting down.
-10.3 SERVERSTOPPING FLOOD 2
-10.4 EXCEEDEDQUOTAS The operation would cause a resource to exceed the allocated quota
-10.5 QUEUEDTOOLONG The ITIP message has been queued too long. Delivery has been aborted.
diff --git a/src/plugins/vcalendar/libical/design-data/value-types.csv b/src/plugins/vcalendar/libical/design-data/value-types.csv
deleted file mode 100644 (file)
index cbe6bd9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-"#Name","C type& gen flag","Python","Component Values","Enum Values"
-"BINARY","(a)const char*","file","unitary",
-"BOOLEAN","(a)int","integer","unitary",
-"CAL-ADDRESS","(a)const char*","string","unitary",
-"DATE","(a)struct icaltimetype","Time","unitary",
-"DATE-TIME","(a)struct icaltimetype","Time","unitary",
-"DURATION","(a)struct icaldurationtype","Duration","unitary",
-"FLOAT","(a)float","float","unitary",
-"INTEGER","(a)int","integer","unitary",
-"PERIOD","(a)struct icalperiodtype","Period","unitary",
-"RECUR","(m)struct icalrecurrencetype","RecurrenceSet","unitary",
-"TEXT","(a)const char*","string","unitary",
-"TIME","(a)struct icaltimetype","Time","unitary",
-"URI","(a)const char*","string","unitary",
-"UTC-OFFSET","(a)int","integer","unitary",
-"QUERY","(a)const char*","string","unitary",
-"#Non-standard multi-valued types",,,,
-"ATTACH","(a)struct icalattachtype","none","URI;BINARY",
-"DATE-TIME-DATE","(a)struct icaltimetype","none","DATE-TIME;DATE",
-"DATE-TIME-PERIOD","(m)struct icaldatetimeperiodtype","none","DATE-TIME;PERIOD",
-"TRIGGER","(m)struct icaltriggertype","string","DURATION;DATE-TIME",
-"#Non-standard property enumeration types",,,,
-"METHOD","(a)enum icalproperty_method","string","unitary","PUBLISH;REQUEST;REPLY;ADD;CANCEL;REFRESH;COUNTER;DECLINECOUNTER;CREATE;READ;RESPONSE;MOVE;MODIFY;GENERATEUID;DELETE"
-"ACTION","(a)enum icalproperty_action","string","unitary","AUDIO;DISPLAY;EMAIL;PROCEDURE"
-"STATUS","(a)enum icalproperty_status","string","unitary","TENTATIVE;CONFIRMED;COMPLETED;NEEDS-ACTION;CANCELLED;IN-PROCESS;DRAFT;FINAL"
-"TRANSP","(a)enum icalproperty_transp","string","unitary","OPAQUE;TRANSPARENT"
-"CLASS","(a)enum icalproperty_class","string","unitary","PUBLIC;PRIVATE;CONFIDENTIAL"
-"#Other non-standard",,,,
-"GEO","(a)struct icalgeotype","tuple","unitary",
-"STRING","(a)const char*","string","unitary",
-"X","(m)const char*","string","unitary",
diff --git a/src/plugins/vcalendar/libical/libical/Makefile.am b/src/plugins/vcalendar/libical/libical/Makefile.am
deleted file mode 100644 (file)
index e7d886f..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-#======================================================================
-#  FILE: Makefile.am
-#  CREATOR: eric 
-#  
-#  $Id$
-#
-#
-# (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of either: 
-#
-#    The LGPL as published by the Free Software Foundation, version
-#    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-#
-#  Or:
-#
-#    The Mozilla Public License Version 1.0. You may obtain a copy of
-#    the License at http://www.mozilla.org/MPL/
-#
-#  The original code is icalcomponent.c
-#
-#======================================================================
-
-
-DESIGNDATA = $(top_srcdir)/src/plugins/vcalendar/libical/design-data
-ICALSCRIPTS = $(top_srcdir)/src/plugins/vcalendar/libical/scripts
-
-if BUILD_VCALENDAR_PLUGIN
-noinst_LTLIBRARIES = libical.la
-endif
-
-YFLAGS = -d -v -t -pical_yy
-LFLAGS = -Pical_yy
-LEX_OUTPUT_ROOT = lex.ical_yy
-
-libical_la_LDFLAGS = -version-info 0:0:0
-
-libical_la_SOURCES =           \
-       icalattendee.h          \
-       icalattendee.c          \
-       icalcomponent.c         \
-       icalcomponent.h         \
-       icalenums.c             \
-       icalenums.h             \
-       icalerror.c             \
-       icalerror.h             \
-       icallexer.l             \
-       icalmemory.c            \
-       icalmemory.h            \
-       icalmime.c              \
-       icalmime.h              \
-       icalparameter.c         \
-       icalparameter.h         \
-       icalparameterimpl.h     \
-       icalderivedparameter.c  \
-       icalderivedparameter.h  \
-       icalparser.c            \
-       icalparser.h            \
-       icalderivedproperty.c   \
-       icalderivedproperty.h   \
-       icalproperty.c          \
-       icalproperty.h          \
-       icalrecur.c             \
-       icalrecur.h             \
-       icalrestriction.c       \
-       icalrestriction.h       \
-       icaltime.c              \
-       icaltime.h              \
-       icalduration.h          \
-       icalduration.c          \
-       icalperiod.h            \
-       icalperiod.c            \
-       icaltypes.c             \
-       icaltypes.h             \
-       icalvalue.c             \
-       icalvalue.h             \
-       icalvalueimpl.h         \
-       icalderivedvalue.c      \
-       icalderivedvalue.h      \
-       icalyacc.h              \
-       icalyacc.y              \
-       pvl.c                   \
-       pvl.h                   \
-       sspm.c                  \
-       sspm.h                  \
-       vsnprintf.c             \
-       icallangbind.h          
-
-libicalincludedir = $(includedir)/claws-mail/plugins/@PACKAGE@
-
-libicalinclude_HEADERS =  ical.h 
-
-# ORDERING OF HEADERS IS SIGNIFICANT. Don't change this ordering. It
-# is required to make the combined header ical.h properly
-COMBINEDHEADERS =                                      \
-       $(top_builddir)/src/plugins/vcalendar/libical/libical/icalversion.h     \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icaltime.h          \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalduration.h      \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalperiod.h                \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalenums.h         \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icaltypes.h         \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalrecur.h         \
-       icalderivedvalue.h                              \
-       icalderivedparameter.h                          \
-       icalvalue.h                                     \
-       icalparameter.h                                 \
-       icalderivedproperty.h                           \
-       icalproperty.h                                  \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalattendee.h      \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/pvl.h                       \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalcomponent.h     \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalparser.h                \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalmemory.h                \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalerror.h         \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalrestriction.h   \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/sspm.h              \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icalmime.h          \
-       $(top_srcdir)/src/plugins/vcalendar/libical/libical/icallangbind.h      
-
-BUILT_SOURCES =                        \
-       ical.h                  \
-       icalderivedparameter.c  \
-       icalderivedparameter.h  \
-       icalderivedproperty.c   \
-       icalderivedproperty.h   \
-       icalrestriction.c       \
-       icalderivedvalue.c      \
-       icalderivedvalue.h
-
-ical.h: $(COMBINEDHEADERS)
-       cat $(COMBINEDHEADERS)                          \
-       | egrep -v "#include.*\"ical"                   \
-       | egrep -v "#include.*\"pvl\.h\"" > ical.h
-
-icallexer.c : icalyacc.h
-
-
-# parameters
-
-PARAMETERDEPS =        \
-       $(ICALSCRIPTS)/mkderivedparameters.pl \
-       $(DESIGNDATA)/parameters.csv    \
-       icalderivedparameter.c.in \
-       icalderivedparameter.h.in
-
-icalderivedparameter.h: $(PARAMETERDEPS) 
-       $(PERL) -I $(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedparameters.pl -i $(srcdir)/icalderivedparameter.h.in -h $(DESIGNDATA)/parameters.csv > icalderivedparameter.h 
-
-icalderivedparameter.c: $(PARAMETERDEPS) icalparameter.h
-       $(PERL) -I $(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedparameters.pl -i $(srcdir)/icalderivedparameter.c.in -c $(DESIGNDATA)/parameters.csv > icalderivedparameter.c
-
-
-# properties
-
-PROPERTYDEPS =                                 \
-       $(ICALSCRIPTS)/mkderivedproperties.pl   \
-       $(DESIGNDATA)/properties.csv            \
-       $(DESIGNDATA)/value-types.csv           \
-       icalderivedproperty.c.in                \
-       icalderivedproperty.h.in
-
-
-icalderivedproperty.h: $(PROPERTYDEPS)
-       $(PERL)  -I$(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedproperties.pl \
-               -i $(srcdir)/icalderivedproperty.h.in -h $(DESIGNDATA)/properties.csv\
-               ${DESIGNDATA}/value-types.csv > icalderivedproperty.h 
-
-icalderivedproperty.c: $(PROPERTYDEPS) icalproperty.h 
-       $(PERL)  -I$(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedproperties.pl \
-               -i $(srcdir)/icalderivedproperty.c.in -c $(DESIGNDATA)/properties.csv \
-               ${DESIGNDATA}/value-types.csv > icalderivedproperty.c
-
-# restrictions
-
-RESTRICTIONDEPS =                              \
-       $(ICALSCRIPTS)/mkrestrictiontable.pl    \
-       $(DESIGNDATA)/restrictions.csv          \
-       icalrestriction.c.in
-
-icalrestriction.c: $(RESTRICTIONDEPS)
-       $(PERL) $(ICALSCRIPTS)/mkrestrictiontable.pl  -i $(srcdir)/icalrestriction.c.in \
-               $(DESIGNDATA)/restrictions.csv > icalrestriction.c
-
-# values
-
-VALUEDEPS =                                    \
-       $(ICALSCRIPTS)/mkderivedvalues.pl       \
-       $(DESIGNDATA)/value-types.csv           \
-       icalderivedvalue.c.in                           \
-       icalderivedvalue.h.in
-
-icalderivedvalue.h: $(VALUEDEPS)
-       $(PERL) -I$(ICALSCRIPTS)  $(ICALSCRIPTS)/mkderivedvalues.pl \
-                -i $(srcdir)/icalderivedvalue.h.in -h $(DESIGNDATA)/value-types.csv > icalderivedvalue.h
-
-icalderivedvalue.c: $(VALUEDEPS) icalderivedvalue.h
-       $(PERL)  -I$(ICALSCRIPTS) $(ICALSCRIPTS)/mkderivedvalues.pl \
-               -i $(srcdir)/icalderivedvalue.c.in -c $(DESIGNDATA)/value-types.csv > icalderivedvalue.c
-
-
-
-# housekeeping
-CONFIG_CLEAN_FILES = y.output
-
-CLEANFILES = $(BUILT_SOURCES)
-
-EXTRA_DIST =                   \
-       icalderivedparameter.c.in \
-       icalderivedparameter.h.in \
-       icalderivedproperty.c.in \
-       icalderivedproperty.h.in \
-       icalrestriction.c.in    \
-       icalderivedvalue.c.in   \
-       icalderivedvalue.h.in   \
-       icalversion.h.in        \
-       icallexer.c             \
-       icalyacc.c
-
-libical_la_CPPFLAGS = -DNDEBUG $(GLIB_CFLAGS) \
-       -I$(top_builddir)       \
-       -I$(top_srcdir)         \
-       -I$(top_builddir)       \
-       -I$(srcdir)             \
-       -I$(top_srcdir)/src/plugins/vcalendar/libical \
-       -I$(top_srcdir)/src/plugins/vcalendar/libical/libical
-
diff --git a/src/plugins/vcalendar/libical/libical/icalattendee.c b/src/plugins/vcalendar/libical/libical/icalattendee.c
deleted file mode 100644 (file)
index 30cb949..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalattendee.c
-  CREATOR: eric 08 Mar 01
-  
-  $Id$
-  $Locker$
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icaltypes.c
-
- ======================================================================*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icalattendee.h"
diff --git a/src/plugins/vcalendar/libical/libical/icalattendee.h b/src/plugins/vcalendar/libical/libical/icalattendee.h
deleted file mode 100644 (file)
index 023b307..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalattendee.h
- CREATOR: eric 8 Mar 01
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icaltypes.h
-
-======================================================================*/
-
-#ifndef ICALATTENDEE_H
-#define ICALATTENDEE_H
-
-#include <time.h>
-#include "icalenums.h"
-#include "icaltime.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-#include "icalderivedparameter.h"
-#include "icalderivedvalue.h"
-
-struct icalorganizertype {
-    const char* value;
-    const char* common_name;
-    const char* dir;
-    const char* sentby;
-    const char* language;
-
-};
-
-/* Create a copy of the given organizer. Libical will not own the
-   memory for the strings in the copy; the call must free them */
-struct icalorganizertype icalorganizertype_new_clone(struct icalorganizertype a);
-
-
-struct icalattendeetype {
-    const char* cuid; /* Cal user id, contents of the property value */
-    /*icalparameter_cutype cutype;*/
-    const char* member;
-    /*icalparameter_role role;*/
-    int rsvp;
-    const char* delto;
-    const char* delfrom;
-    const char* sentby;
-    const char* cn;
-    const char* dir;
-    const char* language;
-};
-
-/* Create a copy of the given attendee. Libical will not own the
-   memory for the strings in the copy; the call must free them */
-struct icalattendeetype icalattendeetype_new_clone(struct icalattendeetype a);
-
-
-#endif /* !ICALATTENDEE_H */
diff --git a/src/plugins/vcalendar/libical/libical/icalcomponent.c b/src/plugins/vcalendar/libical/libical/icalcomponent.c
deleted file mode 100644 (file)
index c027ee9..0000000
+++ /dev/null
@@ -1,1497 +0,0 @@
-/*======================================================================
-  FILE: icalcomponent.c
-  CREATOR: eric 28 April 1999
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalcomponent.c
-
-======================================================================*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icalcomponent.h"
-#include "pvl.h" /* "Pointer-to-void list" */
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalenums.h"
-#include "icaltime.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-#include "icalparser.h"
-
-#include <string.h>  /* for strcpy & memset */
-#include <stdlib.h>  /* for malloc */
-#include <stdarg.h> /* for va_list, etc */
-#include <errno.h>
-#include <assert.h>
-#include <stdio.h> /* for fprintf */
-
-#define MAX_TMP 1024
-
-struct icalcomponent_impl 
-{
-       char id[5];
-       icalcomponent_kind kind;
-       char* x_name;
-       pvl_list properties;
-       pvl_elem property_iterator;
-       pvl_list components;
-       pvl_elem component_iterator;
-       icalcomponent* parent;
-};
-
-/* icalproperty functions that only components get to use */
-void icalproperty_set_parent(icalproperty* property,
-                            icalcomponent* component);
-icalcomponent* icalproperty_get_parent(icalproperty* property);
-void icalcomponent_add_children(struct icalcomponent_impl *impl,va_list args);
-icalcomponent* icalcomponent_new_impl (icalcomponent_kind kind);
-int icalcomponent_property_sorter(void *a, void *b);
-
-
-void icalcomponent_add_children(struct icalcomponent_impl *impl,va_list args)
-{
-    void* vp;
-    
-    while((vp = va_arg(args, void*)) != 0) {
-
-       assert (icalcomponent_isa_component(vp) != 0 ||
-               icalproperty_isa_property(vp) != 0 ) ;
-
-       if (icalcomponent_isa_component(vp) != 0 ){
-
-           icalcomponent_add_component((icalcomponent*)impl,
-                                      (icalcomponent*)vp);
-
-       } else if (icalproperty_isa_property(vp) != 0 ){
-
-           icalcomponent_add_property((icalcomponent*)impl,
-                                      (icalproperty*)vp);
-       }
-    }    
-}
-
-icalcomponent*
-icalcomponent_new_impl (icalcomponent_kind kind)
-{
-    struct icalcomponent_impl* comp;
-
-    if ( ( comp = (struct icalcomponent_impl*)
-          malloc(sizeof(struct icalcomponent_impl))) == 0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-    
-    strcpy(comp->id,"comp");
-
-    comp->kind = kind;
-    comp->properties = pvl_newlist();
-    comp->property_iterator = 0;
-    comp->components = pvl_newlist();
-    comp->component_iterator = 0;
-    comp->x_name = 0;
-    comp->parent = 0;
-
-    return comp;
-}
-
-icalcomponent*
-icalcomponent_new (icalcomponent_kind kind)
-{
-   return (icalcomponent*)icalcomponent_new_impl(kind);
-}
-
-icalcomponent*
-icalcomponent_vanew (icalcomponent_kind kind, ...)
-{
-   va_list args;
-
-   struct icalcomponent_impl *impl = icalcomponent_new_impl(kind);
-
-    if (impl == 0){
-       return 0;
-    }
-
-   va_start(args,kind);
-   icalcomponent_add_children(impl, args);
-   va_end(args);
-
-   return (icalcomponent*) impl;
-}
-
-icalcomponent* icalcomponent_new_from_string(char* str)
-{
-    return icalparser_parse_string(str);
-}
-
-icalcomponent* icalcomponent_new_clone(icalcomponent* component)
-{
-    struct icalcomponent_impl *old = (struct icalcomponent_impl*)component;
-    struct icalcomponent_impl *new;
-    icalproperty *p;
-    icalcomponent *c;
-    pvl_elem itr;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    new = icalcomponent_new_impl(old->kind);
-
-    if (new == 0){
-       return 0;
-    }
-
-    
-    for( itr = pvl_head(old->properties);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       p = (icalproperty*)pvl_data(itr);
-       icalcomponent_add_property(new,icalproperty_new_clone(p));
-    }
-   
-   
-    for( itr = pvl_head(old->components);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       c = (icalcomponent*)pvl_data(itr);
-       icalcomponent_add_component(new,icalcomponent_new_clone(c));
-    }
-
-   return new;
-
-}
-
-
-void
-icalcomponent_free (icalcomponent* component)
-{
-    icalproperty* prop;
-    icalcomponent* comp;
-    struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-
-    icalerror_check_arg_rv( (component!=0), "component");
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (c->parent ==0),"Tried to free a component that is still attached to a parent component");
-#else
-    if(c->parent != 0){
-       return;
-    }
-#endif
-
-    if(component != 0 ){
-       
-       while( (prop=pvl_pop(c->properties)) != 0){
-          assert(prop != 0);
-           icalproperty_set_parent(prop,0);
-          icalproperty_free(prop);
-       }
-       
-       pvl_free(c->properties);
-
-       while( (comp=pvl_data(pvl_head(c->components))) != 0){
-          assert(comp!=0);
-          icalcomponent_remove_component(component,comp);
-          icalcomponent_free(comp);
-       }
-       
-       pvl_free(c->components);
-
-       if (c->x_name != 0) {
-           free(c->x_name);
-       }
-
-       c->kind = ICAL_NO_COMPONENT;
-       c->properties = 0;
-       c->property_iterator = 0;
-       c->components = 0;
-       c->component_iterator = 0;
-       c->x_name = 0;  
-       c->id[0] = 'X';
-
-       free(c);
-    }
-}
-
-char*
-icalcomponent_as_ical_string (icalcomponent* component)
-{
-   char* buf, *out_buf;
-   char* tmp_buf;
-   size_t buf_size = 1024;
-   char* buf_ptr = 0;
-    pvl_elem itr;
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-
-#ifdef ICAL_UNIX_NEWLINE    
-    char newline[] = "\n";
-#else
-    char newline[] = "\r\n";
-#endif
-   
-   icalcomponent *c;
-   icalproperty *p;
-   icalcomponent_kind kind = icalcomponent_isa(component);
-
-   const char* kind_string;
-
-   icalerror_check_arg_rz( (component!=0), "component");
-   icalerror_check_arg_rz( (kind!=ICAL_NO_COMPONENT), "component kind is ICAL_NO_COMPONENT");
-   
-   kind_string  = icalenum_component_kind_to_string(kind);
-
-   icalerror_check_arg_rz( (kind_string!=0),"Unknown kind of component");
-
-   buf = icalmemory_new_buffer(buf_size);
-   buf_ptr = buf; 
-
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, "BEGIN:");
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-   
-
-
-   for( itr = pvl_head(impl->properties);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       p = (icalproperty*)pvl_data(itr);
-       
-       icalerror_assert((p!=0),"Got a null property");
-       tmp_buf = icalproperty_as_ical_string(p);
-       
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, tmp_buf);
-    }
-   
-   
-   for( itr = pvl_head(impl->components);
-       itr != 0;
-       itr = pvl_next(itr))
-   {   
-       c = (icalcomponent*)pvl_data(itr);
-       
-       tmp_buf = icalcomponent_as_ical_string(c);
-       
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, tmp_buf);
-       
-   }
-   
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, "END:");
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, 
-                           icalenum_component_kind_to_string(kind));
-   icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-
-   out_buf = icalmemory_tmp_copy(buf);
-   icalmemory_free_buffer(buf);
-
-   return out_buf;
-}
-
-
-int
-icalcomponent_is_valid (icalcomponent* component)
-{
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl *)component;
-
-       
-    if ( (strcmp(impl->id,"comp") == 0) &&
-        impl->kind != ICAL_NO_COMPONENT){
-       return 1;
-    } else {
-       return 0;
-    }
-
-}
-
-
-icalcomponent_kind
-icalcomponent_isa (icalcomponent* component)
-{
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl *)component;
-    icalerror_check_arg_rz( (component!=0), "component");
-
-   if(component != 0)
-   {
-       return impl->kind;
-   }
-
-   return ICAL_NO_COMPONENT;
-}
-
-
-int
-icalcomponent_isa_component (void* component)
-{
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl *)component;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    if (strcmp(impl->id,"comp") == 0) {
-       return 1;
-    } else {
-       return 0;
-    }
-
-}
-
-int icalcomponent_property_sorter(void *a, void *b)
-{
-    icalproperty_kind kinda, kindb;
-    const char *ksa, *ksb;
-
-    kinda = icalproperty_isa((icalproperty*)a);
-    kindb = icalproperty_isa((icalproperty*)b);
-
-    ksa = icalenum_property_kind_to_string(kinda);
-    ksb = icalenum_property_kind_to_string(kindb);
-
-    return strcmp(ksa,ksb);
-}
-
-
-void
-icalcomponent_add_property (icalcomponent* component, icalproperty* property)
-{
-    struct icalcomponent_impl *impl;
-
-    icalerror_check_arg_rv( (component!=0), "component");
-    icalerror_check_arg_rv( (property!=0), "property");
-
-     impl = (struct icalcomponent_impl*)component;
-
-    icalerror_assert( (!icalproperty_get_parent(property)),"The property has already been added to a component. Remove the property with icalcomponent_remove_property before calling icalcomponent_add_property");
-
-    icalproperty_set_parent(property,component);
-
-#ifdef ICAL_INSERT_ORDERED
-    pvl_insert_ordered(impl->properties,
-                      icalcomponent_property_sorter,property);
-#else
-    pvl_push(impl->properties,property);
-#endif
-
-}
-
-
-void
-icalcomponent_remove_property (icalcomponent* component, icalproperty* property)
-{
-    struct icalcomponent_impl *impl;
-    pvl_elem itr, next_itr;
-
-    icalerror_check_arg_rv( (component!=0), "component");
-    icalerror_check_arg_rv( (property!=0), "property");
-    
-    impl = (struct icalcomponent_impl*)component;
-
-    icalerror_assert( (icalproperty_get_parent(property)),"The property is not a member of a component");
-
-    
-    for( itr = pvl_head(impl->properties);
-        itr != 0;
-        itr = next_itr)
-    {
-       next_itr = pvl_next(itr);
-       
-       if( pvl_data(itr) == (void*)property ){
-
-          if (impl->property_iterator == itr){
-              impl->property_iterator = pvl_next(itr);
-          }
-
-          pvl_remove( impl->properties, itr); 
-         icalproperty_set_parent(property,0);
-       }
-    }  
-}
-
-int
-icalcomponent_count_properties (icalcomponent* component, 
-                               icalproperty_kind kind)
-{
-    int count=0;
-    pvl_elem itr;
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    for( itr = pvl_head(impl->properties);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       if(kind == icalproperty_isa((icalproperty*)pvl_data(itr)) ||
-           kind == ICAL_ANY_PROPERTY){
-           count++;
-       }
-    }
-
-
-    return count;
-
-}
-
-icalproperty* icalcomponent_get_current_property (icalcomponent* component)
-{
-
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-   icalerror_check_arg_rz( (component!=0),"component");
-
-   if ((c->property_iterator==0)){
-       return 0;
-   }
-
-   return (icalproperty*) pvl_data(c->property_iterator);
-
-}
-
-icalproperty*
-icalcomponent_get_first_property (icalcomponent* component, icalproperty_kind kind)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-   icalerror_check_arg_rz( (component!=0),"component");
-  
-   for( c->property_iterator = pvl_head(c->properties);
-       c->property_iterator != 0;
-       c->property_iterator = pvl_next(c->property_iterator)) {
-           
-       icalproperty *p =  (icalproperty*) pvl_data(c->property_iterator);
-       
-          if (icalproperty_isa(p) == kind || kind == ICAL_ANY_PROPERTY) {
-              
-              return p;
-          }
-   }
-   return 0;
-}
-
-icalproperty*
-icalcomponent_get_next_property (icalcomponent* component, icalproperty_kind kind)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-   icalerror_check_arg_rz( (component!=0),"component");
-
-   if (c->property_iterator == 0){
-       return 0;
-   }
-
-   for( c->property_iterator = pvl_next(c->property_iterator);
-       c->property_iterator != 0;
-       c->property_iterator = pvl_next(c->property_iterator)) {
-           
-       icalproperty *p =  (icalproperty*) pvl_data(c->property_iterator);
-          
-       if (icalproperty_isa(p) == kind || kind == ICAL_ANY_PROPERTY) {
-          
-          return p;
-       }
-   }
-
-   return 0;
-}
-
-
-icalproperty**
-icalcomponent_get_properties (icalcomponent* component, icalproperty_kind kind);
-
-
-void
-icalcomponent_add_component (icalcomponent* parent, icalcomponent* child)
-{
-    struct icalcomponent_impl *impl, *cimpl;
-
-    icalerror_check_arg_rv( (parent!=0), "parent");
-    icalerror_check_arg_rv( (child!=0), "child");
-    
-    impl = (struct icalcomponent_impl*)parent;
-    cimpl = (struct icalcomponent_impl*)child;
-
-    icalerror_assert( (cimpl->parent ==0),"The child component has already been added to a parent component. Remove the component with icalcomponent_remove_component before calling icalcomponent_add_component");
-
-    cimpl->parent = parent;
-
-    pvl_push(impl->components,child);
-}
-
-
-void
-icalcomponent_remove_component (icalcomponent* parent, icalcomponent* child)
-{
-   struct icalcomponent_impl *impl,*cimpl;
-   pvl_elem itr, next_itr;
-
-   icalerror_check_arg_rv( (parent!=0), "parent");
-   icalerror_check_arg_rv( (child!=0), "child");
-   
-   impl = (struct icalcomponent_impl*)parent;
-   cimpl = (struct icalcomponent_impl*)child;
-   
-   for( itr = pvl_head(impl->components);
-       itr != 0;
-       itr = next_itr)
-   {
-       next_itr = pvl_next(itr);
-       
-       if( pvl_data(itr) == (void*)child ){
-
-          if (impl->component_iterator == itr){
-              /* Don't let the current iterator become invalid */
-
-              /* HACK. The semantics for this are troubling. */
-              impl->component_iterator = 
-                  pvl_next(impl->component_iterator);
-                 
-          }
-          pvl_remove( impl->components, itr); 
-          cimpl->parent = 0;
-          break;
-       }
-   }   
-}
-
-
-int
-icalcomponent_count_components (icalcomponent* component, 
-                               icalcomponent_kind kind)
-{
-    int count=0;
-    pvl_elem itr;
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-
-    icalerror_check_arg_rz( (component!=0), "component");
-
-    for( itr = pvl_head(impl->components);
-        itr != 0;
-        itr = pvl_next(itr))
-    {
-       if(kind == icalcomponent_isa((icalcomponent*)pvl_data(itr)) ||
-           kind == ICAL_ANY_COMPONENT){
-           count++;
-       }
-    }
-
-    return count;
-}
-
-icalcomponent*
-icalcomponent_get_current_component(icalcomponent* component)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-
-   icalerror_check_arg_rz( (component!=0),"component");
-
-   if (c->component_iterator == 0){
-       return 0;
-   }
-
-   return (icalcomponent*) pvl_data(c->component_iterator);
-}
-
-icalcomponent*
-icalcomponent_get_first_component (icalcomponent* component, 
-                                  icalcomponent_kind kind)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-
-   icalerror_check_arg_rz( (component!=0),"component");
-  
-   for( c->component_iterator = pvl_head(c->components);
-       c->component_iterator != 0;
-       c->component_iterator = pvl_next(c->component_iterator)) {
-           
-       icalcomponent *p =  (icalcomponent*) pvl_data(c->component_iterator);
-       
-          if (icalcomponent_isa(p) == kind || kind == ICAL_ANY_COMPONENT) {
-              
-              return p;
-          }
-   }
-
-   return 0;
-}
-
-
-icalcomponent*
-icalcomponent_get_next_component (icalcomponent* component, icalcomponent_kind kind)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-
-   icalerror_check_arg_rz( (component!=0),"component");
-  
-   if (c->component_iterator == 0){
-       return 0;
-   }
-
-   for( c->component_iterator = pvl_next(c->component_iterator);
-       c->component_iterator != 0;
-       c->component_iterator = pvl_next(c->component_iterator)) {
-           
-       icalcomponent *p =  (icalcomponent*) pvl_data(c->component_iterator);
-       
-          if (icalcomponent_isa(p) == kind || kind == ICAL_ANY_COMPONENT) {
-              
-              return p;
-          }
-   }
-
-   return 0;
-}
-
-icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c)
-{
-    icalcomponent *comp;
-
-    for(comp = icalcomponent_get_first_component(c,ICAL_ANY_COMPONENT);
-       comp != 0;
-       comp = icalcomponent_get_next_component(c,ICAL_ANY_COMPONENT)){
-
-       icalcomponent_kind kind = icalcomponent_isa(comp);
-
-       if(kind == ICAL_VEVENT_COMPONENT ||
-          kind == ICAL_VTODO_COMPONENT ||
-          kind == ICAL_VJOURNAL_COMPONENT ){
-           return comp;
-       }
-    }
-    return 0;
-}
-
-time_t icalcomponent_convert_time(icalproperty *p)
-{
-    struct icaltimetype sict;
-    time_t convt;
-    icalproperty *tzp;
-        
-
-    /* Though it says _dtstart, it will work for dtend too */
-    sict = icalproperty_get_dtstart(p);
-
-    tzp = icalproperty_get_first_parameter(p,ICAL_TZID_PARAMETER);
-
-    if (sict.is_utc == 1 && tzp != 0){
-       icalerror_warn("icalcomponent_get_span: component has a UTC DTSTART with a timezone specified ");
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       return 0; 
-    }
-
-    if(sict.is_utc == 1){
-#ifdef TEST_CONVERT_TIME
-       gchar buft[512];
-#endif
-       /* _as_timet will use gmtime() to do the conversion */
-       convt = icaltime_as_timet(sict);
-
-#ifdef TEST_CONVERT_TIME
-       printf("convert time: use as_timet:\n %s\n %s",
-              icalproperty_as_ical_string(p), ctime_r(&convt,buft));
-#endif
-
-    } else if (sict.is_utc == 0 && tzp == 0 ) {
-       time_t offset;
-#ifdef TEST_CONVERT_TIME
-       gchar buft[512];
-#endif
-
-       /* _as_timet will use localtime() to do the conversion */
-       convt = icaltime_as_timet(sict);
-       offset = icaltime_utc_offset(sict,0);
-       convt += offset;
-
-#ifdef TEST_CONVERT_TIME
-       printf("convert time: use as_timet and adjust:\n %s\n %s",
-              icalproperty_as_ical_string(p), ctime_r(&convt,buft));
-#endif
-    } else {
-#ifdef TEST_CONVERT_TIME
-       gchar buft[512];
-#endif
-       /* Convert the time to UTC for the named timezone*/
-       const char* timezone = icalparameter_get_tzid(tzp);
-       convt = icaltime_as_timet(icaltime_as_utc(sict,timezone));
-
-#ifdef TEST_CONVERT_TIME
-       printf("convert time: use _as_utc:\n %s\n %s",
-              icalproperty_as_ical_string(p), ctime_r(&convt,buft));
-#endif
-    }      
-
-    return convt;
-}
-struct icaltime_span icalcomponent_get_span(icalcomponent* comp)
-{
-    icalcomponent *inner;
-    icalproperty *p, *duration;
-    icalcomponent_kind kind;
-    struct icaltime_span span;
-    struct icaltimetype start;
-#ifdef TEST_CONVERT_TIME
-    gchar buft[512];
-#endif
-
-    span.start = 0;
-    span.end = 0;
-    span.is_busy= 1;
-
-    /* initial Error checking */
-
-/*    icalerror_check_arg_rz( (comp!=0),"comp");*/
-
-    kind  = icalcomponent_isa(comp);
-
-    if(kind == ICAL_VCALENDAR_COMPONENT){
-       inner = icalcomponent_get_first_real_component(comp);
-
-       /* Maybe there is a VTIMEZONE in there */
-       if (inner == 0){
-           inner = icalcomponent_get_first_component(comp,
-                              ICAL_VTIMEZONE_COMPONENT);
-       }
-
-    } else {
-       inner = comp;
-    }
-
-    if (inner == 0){
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       /*icalerror_warn("icalcomponent_get_span: no component specified, or empty VCALENDAR component");*/
-       return span; 
-    }
-    
-    kind  = icalcomponent_isa(inner);
-
-    if( !( kind == ICAL_VEVENT_COMPONENT ||
-          kind == ICAL_VJOURNAL_COMPONENT ||
-          kind == ICAL_VTODO_COMPONENT ||         
-          kind == ICAL_VFREEBUSY_COMPONENT )) {
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       /*icalerror_warn("icalcomponent_get_span: no component specified, or empty VCALENDAR component");*/
-       return span; 
-       
-    }
-
-
-
-    /* Get to work. starting with DTSTART */
-
-    p = icalcomponent_get_first_property(inner, ICAL_DTSTART_PROPERTY);
-
-    if (p ==0 ) {
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       /*icalerror_warn("icalcomponent_get_span: component has no DTSTART time");*/
-       return span; 
-    }
-
-
-    start = icalproperty_get_dtstart(p);
-
-    icalerror_clear_errno();
-
-    span.start = icalcomponent_convert_time(p);
-
-#ifdef TEST_CONVERT_TIME
-    printf("convert time:\n %s %s",
-          icalproperty_as_ical_string(p), ctime_r(&span.start, buft));
-#endif
-
-    if(icalerrno != ICAL_NO_ERROR){
-       span.start = 0;
-       return span;
-    }
-
-    /* The end time could be specified as either a DTEND or a DURATION */
-    p = icalcomponent_get_first_property(inner, ICAL_DTEND_PROPERTY);
-    duration = icalcomponent_get_first_property(inner, ICAL_DURATION_PROPERTY);
-
-    if (p==0 && duration == 0 && start.is_date != 1) {
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       /*icalerror_warn("icalcomponent_get_span: component has neither DTEND nor DURATION time");*/
-       span.start = 0;
-       return span; 
-    } 
-
-    if (p!=0){
-       span.end = icalcomponent_convert_time(p);
-    } else if (start.is_date == 1) {
-       /* Duration is all day */
-       span.end = span.start + 60*60*24;
-    } else {
-       /* Use the duration */
-       struct icaldurationtype dur;
-       time_t durt;
-       
-       
-       dur = icalproperty_get_duration(duration);
-
-       durt = icaldurationtype_as_int(dur);
-       span.end = span.start+durt;
-    }
-
-    return span;
-
-}
-
-
-int icalcomponent_count_errors(icalcomponent* component)
-{
-    int errors = 0;
-    icalproperty *p;
-    icalcomponent *c;
-    pvl_elem itr;
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-
-    for( itr = pvl_head(impl->properties);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       p = (icalproperty*)pvl_data(itr);
-       
-       if(icalproperty_isa(p) == ICAL_XLICERROR_PROPERTY)
-       {
-           errors++;
-       }
-    }
-
-
-    for( itr = pvl_head(impl->components);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       c = (icalcomponent*)pvl_data(itr);
-       
-       errors += icalcomponent_count_errors(c);
-       
-    }
-
-    return errors;
-}
-
-
-void icalcomponent_strip_errors(icalcomponent* component)
-{
-    icalproperty *p;
-    icalcomponent *c;
-    pvl_elem itr, next_itr;
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-
-   for( itr = pvl_head(impl->properties);
-        itr != 0;
-        itr = next_itr)
-    {  
-       p = (icalproperty*)pvl_data(itr);
-       next_itr = pvl_next(itr);
-
-       if(icalproperty_isa(p) == ICAL_XLICERROR_PROPERTY)
-       {
-           icalcomponent_remove_property(component,p);
-       }
-    }
-    
-    for( itr = pvl_head(impl->components);
-        itr != 0;
-        itr = pvl_next(itr))
-    {  
-       c = (icalcomponent*)pvl_data(itr);
-       icalcomponent_strip_errors(c);
-    }
-}
-
-/* Hack. This will change the state of the iterators */
-void icalcomponent_convert_errors(icalcomponent* component)
-{
-    icalproperty *p, *next_p;
-    icalcomponent *c;
-
-    for(p = icalcomponent_get_first_property(component,ICAL_ANY_PROPERTY);
-       p != 0;
-       p = next_p){
-       
-       next_p = icalcomponent_get_next_property(component,ICAL_ANY_PROPERTY);
-
-       if(icalproperty_isa(p) == ICAL_XLICERROR_PROPERTY)
-       {
-           struct icalreqstattype rst;
-           icalparameter *param  = icalproperty_get_first_parameter
-               (p,ICAL_XLICERRORTYPE_PARAMETER);
-
-           rst.code = ICAL_UNKNOWN_STATUS;
-           rst.desc = 0;
-
-           switch(icalparameter_get_xlicerrortype(param)){
-
-               case  ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR: {
-                   rst.code = ICAL_3_2_INVPARAM_STATUS;
-                   break;
-               }
-               case  ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR: {
-                   rst.code = ICAL_3_3_INVPARAMVAL_STATUS;
-                   break;
-               }
-               case  ICAL_XLICERRORTYPE_PROPERTYPARSEERROR: {              
-                   rst.code = ICAL_3_0_INVPROPNAME_STATUS;
-                   break;
-               }
-               case  ICAL_XLICERRORTYPE_VALUEPARSEERROR: {
-                   rst.code = ICAL_3_1_INVPROPVAL_STATUS;
-                   break;
-               }
-               case  ICAL_XLICERRORTYPE_COMPONENTPARSEERROR: {
-                   rst.code = ICAL_3_4_INVCOMP_STATUS;
-                   break;
-               }
-
-               default: {
-               }
-           }
-           if (rst.code != ICAL_UNKNOWN_STATUS){
-               
-               rst.debug = icalproperty_get_xlicerror(p);
-               icalcomponent_add_property(component,
-                                          icalproperty_new_requeststatus(
-                                              icalreqstattype_as_string(rst)
-                                              )
-                   );
-               
-               icalcomponent_remove_property(component,p);
-           }
-       }
-    }
-
-    for(c = icalcomponent_get_first_component(component,ICAL_ANY_COMPONENT);
-       c != 0;
-       c = icalcomponent_get_next_component(component,ICAL_ANY_COMPONENT)){
-       
-       icalcomponent_convert_errors(c);
-    }
-}
-
-
-icalcomponent* icalcomponent_get_parent(icalcomponent* component)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-
-   return c->parent;
-}
-
-void icalcomponent_set_parent(icalcomponent* component, icalcomponent* parent)
-{
-   struct icalcomponent_impl *c = (struct icalcomponent_impl*)component;
-
-   c->parent = parent;
-}
-
-icalcompiter icalcompiter_null = {ICAL_NO_COMPONENT,0};
-
-
-struct icalcomponent_kind_map {
-       icalcomponent_kind kind;
-       char name[20];
-};
-
-  
-
-static struct icalcomponent_kind_map component_map[] = 
-{
-    { ICAL_VEVENT_COMPONENT, "VEVENT" },
-    { ICAL_VTODO_COMPONENT, "VTODO" },
-    { ICAL_VJOURNAL_COMPONENT, "VJOURNAL" },
-    { ICAL_VCALENDAR_COMPONENT, "VCALENDAR" },
-    { ICAL_VFREEBUSY_COMPONENT, "VFREEBUSY" },
-    { ICAL_VTIMEZONE_COMPONENT, "VTIMEZONE" },
-    { ICAL_VALARM_COMPONENT, "VALARM" },
-    { ICAL_XSTANDARD_COMPONENT, "STANDARD" }, /*These are part of RFC2445 */
-    { ICAL_XDAYLIGHT_COMPONENT, "DAYLIGHT" }, /*but are not really components*/
-    { ICAL_X_COMPONENT, "X" },
-    { ICAL_VSCHEDULE_COMPONENT, "SCHEDULE" },
-
-    /* CAP components */
-    { ICAL_VQUERY_COMPONENT, "VQUERY" },  
-    { ICAL_VCAR_COMPONENT, "VCAR" },  
-    { ICAL_VCOMMAND_COMPONENT, "VCOMMAND" },  
-
-    /* libical private components */
-    { ICAL_XLICINVALID_COMPONENT, "X-LIC-UNKNOWN" },  
-    { ICAL_XLICMIMEPART_COMPONENT, "X-LIC-MIME-PART" },  
-    { ICAL_ANY_COMPONENT, "ANY" },  
-    { ICAL_XROOT_COMPONENT, "XROOT" },  
-
-    /* End of list */
-    { ICAL_NO_COMPONENT, "" },
-};
-
-
-
-const char* icalcomponent_kind_to_string(icalcomponent_kind kind)
-{
-    int i;
-
-    for (i=0; component_map[i].kind != ICAL_NO_COMPONENT; i++) {
-       if (component_map[i].kind == kind) {
-           return component_map[i].name;
-       }
-    }
-
-    return 0;
-
-}
-
-icalcomponent_kind icalcomponent_string_to_kind(const char* string)
-{
-    int i;
-
-    if (string ==0 ) { 
-       return ICAL_NO_COMPONENT;
-    }
-
-    for (i=0; component_map[i].kind  != ICAL_NO_COMPONENT; i++) {
-       if (strcmp(component_map[i].name, string) == 0) {
-           return component_map[i].kind;
-       }
-    }
-
-    return ICAL_NO_COMPONENT;
-}
-
-
-
-icalcompiter 
-icalcomponent_begin_component(icalcomponent* component,icalcomponent_kind kind)
-{
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-    icalcompiter itr;
-    pvl_elem i;
-
-    itr.kind = kind;
-
-    icalerror_check_arg_re( (component!=0),"component",icalcompiter_null);
-
-    for( i = pvl_head(impl->components); i != 0; i = pvl_next(i)) {
-       
-       icalcomponent *c =  (icalcomponent*) pvl_data(i);
-       
-       if (icalcomponent_isa(c) == kind || kind == ICAL_ANY_COMPONENT) {
-           
-           itr.iter = i;
-
-           return itr;
-       }
-    }
-
-    return icalcompiter_null;
-}
-
-icalcompiter
-icalcomponent_end_component(icalcomponent* component,icalcomponent_kind kind)
-{
-    struct icalcomponent_impl *impl = (struct icalcomponent_impl*)component;
-    icalcompiter itr; 
-    pvl_elem i;
-
-    itr.kind = kind;
-
-    icalerror_check_arg_re( (component!=0),"component",icalcompiter_null);
-
-    for( i = pvl_tail(impl->components); i != 0; i = pvl_prior(i)) {
-       
-       icalcomponent *c =  (icalcomponent*) pvl_data(i);
-       
-       if (icalcomponent_isa(c) == kind || kind == ICAL_ANY_COMPONENT) {
-           
-           itr.iter = pvl_next(i);
-
-           return itr;
-       }
-    }
-
-    return icalcompiter_null;;
-}
-
-
-icalcomponent* icalcompiter_next(icalcompiter* i)
-{
-   if (i->iter == 0){
-       return 0;
-   }
-
-   icalerror_check_arg_rz( (i!=0),"i");
-
-   for( i->iter = pvl_next(i->iter);
-       i->iter != 0;
-       i->iter = pvl_next(i->iter)) {
-           
-       icalcomponent *c =  (icalcomponent*) pvl_data(i->iter);
-       
-          if (icalcomponent_isa(c) == i->kind 
-              || i->kind == ICAL_ANY_COMPONENT) {
-              
-              return icalcompiter_deref(i);;
-          }
-   }
-
-   return 0;
-
-}
-
-icalcomponent* icalcompiter_prior(icalcompiter* i)
-{
-   if (i->iter == 0){
-       return 0;
-   }
-
-   for( i->iter = pvl_prior(i->iter);
-       i->iter != 0;
-       i->iter = pvl_prior(i->iter)) {
-           
-       icalcomponent *c =  (icalcomponent*) pvl_data(i->iter);
-       
-          if (icalcomponent_isa(c) == i->kind 
-              || i->kind == ICAL_ANY_COMPONENT) {
-              
-              return icalcompiter_deref(i);;
-          }
-   }
-
-   return 0;
-
-}
-icalcomponent* icalcompiter_deref(icalcompiter* i)
-{
-    if(i->iter ==0){
-       return 0;
-    }
-
-    return pvl_data(i->iter);
-}
-
-icalcomponent* icalcomponent_get_inner(icalcomponent* comp)
-{
-    if (icalcomponent_isa(comp) == ICAL_VCALENDAR_COMPONENT){
-       return icalcomponent_get_first_real_component(comp);
-    } else {
-       return comp;
-    }
-}
-
-
-void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v)
-{
-
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-       = icalcomponent_get_first_property(inner, ICAL_DTSTART_PROPERTY);
-
-
-    if (prop == 0){
-       prop = icalproperty_new_dtstart(v);
-       icalcomponent_add_property(inner, prop);
-    }
-    
-    icalproperty_set_dtstart(prop,v);
-
-}
-
-
-struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-       = icalcomponent_get_first_property(inner,ICAL_DTSTART_PROPERTY);
-
-    if (prop == 0){
-       return icaltime_null_time();
-    }
-    
-    return icalproperty_get_dtstart(prop);
-}
-
-
-struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-
-    icalproperty *end_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-
-    icalproperty *dur_prop 
-       = icalcomponent_get_first_property(inner, ICAL_DURATION_PROPERTY);
-
-
-    if( end_prop == 0 && dur_prop == 0){
-       return icaltime_null_time();
-    } else if ( end_prop != 0) {
-       return icalproperty_get_dtend(end_prop);
-    } else if ( dur_prop != 0) { 
-       
-       struct icaltimetype start = 
-           icalcomponent_get_dtstart(inner);
-       struct icaldurationtype duration = 
-           icalproperty_get_duration(dur_prop);
-       
-       struct icaltimetype end = icaltime_add(start,duration);
-
-       return end;
-
-    } else {
-       /* Error, both duration and dtend have been specified */
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       return icaltime_null_time();
-
-    }
-    
-}
-
-
-void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-
-    icalproperty *end_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-
-    icalproperty *dur_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DURATION_PROPERTY);
-
-
-    if( end_prop == 0 && dur_prop == 0){
-       end_prop = icalproperty_new_dtend(v);
-       icalcomponent_add_property(inner,end_prop);
-    } else if ( end_prop != 0) {
-       icalproperty_set_dtend(end_prop,v);
-    } else if ( dur_prop != 0) { 
-       struct icaltimetype start = 
-           icalcomponent_get_dtstart(inner);
-
-       struct icaltimetype end = 
-           icalcomponent_get_dtend(inner);
-
-       struct icaldurationtype dur 
-           = icaltime_subtract(end,start);
-
-       icalproperty_set_duration(dur_prop,dur);
-
-    } else {
-       /* Error, both duration and dtend have been specified */
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    }
-}
-
-void icalcomponent_set_duration(icalcomponent* comp, 
-                               struct icaldurationtype v)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-
-    icalproperty *end_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-
-    icalproperty *dur_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DURATION_PROPERTY);
-
-
-    if( end_prop == 0 && dur_prop == 0){
-       dur_prop = icalproperty_new_duration(v);
-       icalcomponent_add_property(inner, dur_prop);
-    } else if ( end_prop != 0) {
-       struct icaltimetype start = 
-           icalcomponent_get_dtstart(inner);
-       
-       struct icaltimetype new_end = icaltime_add(start,v);
-
-       icalproperty_set_dtend(end_prop,new_end);
-
-    } else if ( dur_prop != 0) { 
-       icalproperty_set_duration(dur_prop,v);
-    } else {
-       /* Error, both duration and dtend have been specified */
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    }
-}
-
-struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-
-    icalproperty *end_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-
-    icalproperty *dur_prop 
-       = icalcomponent_get_first_property(inner,ICAL_DURATION_PROPERTY);
-
-    struct icaldurationtype null_duration;
-    memset(&null_duration,0,sizeof(struct icaldurationtype));
-
-
-    if( end_prop == 0 && dur_prop == 0){
-       return null_duration;
-    } else if ( end_prop != 0) {
-       struct icaltimetype start = 
-           icalcomponent_get_dtstart(inner);
-       time_t startt = icaltime_as_timet(start);
-
-       struct icaltimetype end = 
-           icalcomponent_get_dtend(inner);
-       time_t endt = icaltime_as_timet(end);
-       
-       return icaldurationtype_from_int(endt-startt);
-    } else if ( dur_prop != 0) { 
-       return icalproperty_get_duration(dur_prop);
-    } else {
-       /* Error, both duration and dtend have been specified */
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       return null_duration;
-    }
-}
-
-void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method)
-{
-    icalproperty *prop 
-       = icalcomponent_get_first_property(comp, ICAL_METHOD_PROPERTY);
-
-
-    if (prop == 0){
-       prop = icalproperty_new_method(method);
-       icalcomponent_add_property(comp, prop);
-    }
-    
-    icalproperty_set_method(prop,method);
-
-}
-
-icalproperty_method icalcomponent_get_method(icalcomponent* comp)
-{
-    icalproperty *prop 
-       = icalcomponent_get_first_property(comp,ICAL_METHOD_PROPERTY);
-
-    if (prop == 0){
-       return ICAL_METHOD_NONE;
-    }
-    
-    return icalproperty_get_method(prop);
-}
-
-void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v)
-{
-
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-       = icalcomponent_get_first_property(inner, ICAL_DTSTAMP_PROPERTY);
-
-
-    if (prop == 0){
-       prop = icalproperty_new_dtstamp(v);
-       icalcomponent_add_property(inner, prop);
-    }
-    
-    icalproperty_set_dtstamp(prop,v);
-
-}
-
-
-struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-       = icalcomponent_get_first_property(inner,ICAL_DTSTAMP_PROPERTY);
-
-    if (prop == 0){
-       return icaltime_null_time();
-    }
-    
-    return icalproperty_get_dtstamp(prop);
-}
-
-
-void icalcomponent_set_summary(icalcomponent* comp, const char* v)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-       = icalcomponent_get_first_property(inner, ICAL_SUMMARY_PROPERTY);
-
-    if (prop == 0){
-       prop = icalproperty_new_summary(v);
-       icalcomponent_add_property(inner, prop);
-    }
-    
-    icalproperty_set_summary(prop,v);
-}
-
-
-const char* icalcomponent_get_summary(icalcomponent* comp)
-{
-    icalcomponent *inner = icalcomponent_get_inner(comp); 
-    icalproperty *prop 
-       = icalcomponent_get_first_property(inner,ICAL_SUMMARY_PROPERTY);
-
-    if (prop == 0){
-       return 0;
-    }
-    
-    return icalproperty_get_summary(prop);
-
-}
-
-void icalcomponent_set_comment(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_comment(icalcomponent* comp);
-
-void icalcomponent_set_uid(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_uid(icalcomponent* comp);
-
-void icalcomponent_set_recurrenceid(icalcomponent* comp, 
-                                   struct icaltimetype v);
-struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp);
-
-
-
-
-icalcomponent* icalcomponent_new_vcalendar()
-{
-    return icalcomponent_new(ICAL_VCALENDAR_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vevent()
-{
-    return icalcomponent_new(ICAL_VEVENT_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vtodo()
-{
-    return icalcomponent_new(ICAL_VTODO_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vjournal()
-{
-    return icalcomponent_new(ICAL_VJOURNAL_COMPONENT);
-}
-icalcomponent* icalcomponent_new_valarm()
-{
-    return icalcomponent_new(ICAL_VALARM_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vfreebusy()
-{
-    return icalcomponent_new(ICAL_VFREEBUSY_COMPONENT);
-}
-icalcomponent* icalcomponent_new_vtimezone()
-{
-    return icalcomponent_new(ICAL_VTIMEZONE_COMPONENT);
-}
-icalcomponent* icalcomponent_new_xstandard()
-{
-    return icalcomponent_new(ICAL_XSTANDARD_COMPONENT);
-}
-icalcomponent* icalcomponent_new_xdaylight()
-{
-    return icalcomponent_new(ICAL_XDAYLIGHT_COMPONENT);
-}
diff --git a/src/plugins/vcalendar/libical/libical/icalcomponent.h b/src/plugins/vcalendar/libical/libical/icalcomponent.h
deleted file mode 100644 (file)
index 6046bbe..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalcomponent.h
- CREATOR: eric 20 March 1999
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalcomponent.h
-
-======================================================================*/
-
-#ifndef ICALCOMPONENT_H
-#define ICALCOMPONENT_H
-
-#include "icalproperty.h"
-#include "icalvalue.h"
-#include "icalenums.h" /* defines icalcomponent_kind */
-#include "icalattendee.h"
-#include "pvl.h"
-
-typedef void icalcomponent;
-
-/* This is exposed so that callers will not have to allocate and
-   deallocate iterators. Pretend that you can't see it. */
-typedef struct icalcompiter
-{
-       icalcomponent_kind kind;
-       pvl_elem iter;
-
-} icalcompiter;
-
-icalcomponent* icalcomponent_new(icalcomponent_kind kind);
-icalcomponent* icalcomponent_new_clone(icalcomponent* component);
-icalcomponent* icalcomponent_new_from_string(char* str);
-icalcomponent* icalcomponent_vanew(icalcomponent_kind kind, ...);
-void icalcomponent_free(icalcomponent* component);
-
-char* icalcomponent_as_ical_string(icalcomponent* component);
-
-int icalcomponent_is_valid(icalcomponent* component);
-
-icalcomponent_kind icalcomponent_isa(icalcomponent* component);
-
-int icalcomponent_isa_component (void* component);
-
-/* 
- * Working with properties
- */
-
-void icalcomponent_add_property(icalcomponent* component,
-                               icalproperty* property);
-
-void icalcomponent_remove_property(icalcomponent* component,
-                                  icalproperty* property);
-
-int icalcomponent_count_properties(icalcomponent* component,
-                                  icalproperty_kind kind);
-
-/* Iterate through the properties */
-icalproperty* icalcomponent_get_current_property(icalcomponent* component);
-
-icalproperty* icalcomponent_get_first_property(icalcomponent* component,
-                                             icalproperty_kind kind);
-icalproperty* icalcomponent_get_next_property(icalcomponent* component,
-                                             icalproperty_kind kind);
-
-
-/* 
- * Working with components
- */ 
-
-
-/* Return the first VEVENT, VTODO or VJOURNAL sub-component of cop, or
-   comp if it is one of those types */
-
-icalcomponent* icalcomponent_get_inner(icalcomponent* comp);
-
-
-void icalcomponent_add_component(icalcomponent* parent,
-                               icalcomponent* child);
-
-void icalcomponent_remove_component(icalcomponent* parent,
-                               icalcomponent* child);
-
-int icalcomponent_count_components(icalcomponent* component,
-                                  icalcomponent_kind kind);
-
-/* Iteration Routines. There are two forms of iterators, internal and
-external. The internal ones came first, and are almost completely
-sufficient, but they fail badly when you want to construct a loop that
-removes components from the container.*/
-
-
-/* Iterate through components */
-icalcomponent* icalcomponent_get_current_component (icalcomponent* component);
-
-icalcomponent* icalcomponent_get_first_component(icalcomponent* component,
-                                             icalcomponent_kind kind);
-icalcomponent* icalcomponent_get_next_component(icalcomponent* component,
-                                             icalcomponent_kind kind);
-
-/* Using external iterators */
-icalcompiter icalcomponent_begin_component(icalcomponent* component,
-                                          icalcomponent_kind kind);
-icalcompiter icalcomponent_end_component(icalcomponent* component,
-                                        icalcomponent_kind kind);
-icalcomponent* icalcompiter_next(icalcompiter* i);
-icalcomponent* icalcompiter_prior(icalcompiter* i);
-icalcomponent* icalcompiter_deref(icalcompiter* i);
-
-
-
-
-/* Working with embedded error properties */
-
-int icalcomponent_count_errors(icalcomponent* component);
-
-/* Remove all X-LIC-ERROR properties*/
-void icalcomponent_strip_errors(icalcomponent* component);
-
-/* Convert some X-LIC-ERROR properties into RETURN-STATUS properties*/
-void icalcomponent_convert_errors(icalcomponent* component);
-
-/* Internal operations. They are private, and you should not be using them. */
-icalcomponent* icalcomponent_get_parent(icalcomponent* component);
-void icalcomponent_set_parent(icalcomponent* component, 
-                             icalcomponent* parent);
-
-/* Kind conversion routiens */
-
-icalcomponent_kind icalcomponent_string_to_kind(const char* string);
-
-const char* icalcomponent_kind_to_string(icalcomponent_kind kind);
-
-
-/************* Derived class methods.  ****************************
-
-If the code was in an OO language, the remaining routines would be
-members of classes derived from icalcomponent. Don't call them on the
-wrong component subtypes. */
-
-/* For VCOMPONENT: Return a reference to the first VEVENT, VTODO or
-   VJOURNAL */
-icalcomponent* icalcomponent_get_first_real_component(icalcomponent *c);
-
-/* For VEVENT, VTODO, VJOURNAL and VTIMEZONE: report the start and end
-   times of an event in UTC */
-struct icaltime_span icalcomponent_get_span(icalcomponent* comp);
-
-/******************** Convienience routines **********************/
-
-void icalcomponent_set_dtstart(icalcomponent* comp, struct icaltimetype v);
-struct icaltimetype icalcomponent_get_dtstart(icalcomponent* comp);
-
-/* For the icalcomponent routines only, dtend and duration are tied
-   together. If you call the set routine for one and the other exists,
-   the routine will calculate the change to the other. That is, if
-   there is a DTEND and you call set_duration, the routine will modify
-   DTEND to be the sum of DTSTART and the duration. If you call a get
-   routine for one and the other exists, the routine will calculate
-   the return value. If you call a set routine and neither exists, the
-   routine will create the apcompriate comperty */
-
-
-struct icaltimetype icalcomponent_get_dtend(icalcomponent* comp);
-void icalcomponent_set_dtend(icalcomponent* comp, struct icaltimetype v);
-
-void icalcomponent_set_duration(icalcomponent* comp, 
-                               struct icaldurationtype v);
-struct icaldurationtype icalcomponent_get_duration(icalcomponent* comp);
-
-void icalcomponent_set_method(icalcomponent* comp, icalproperty_method method);
-icalproperty_method icalcomponent_get_method(icalcomponent* comp);
-
-struct icaltimetype icalcomponent_get_dtstamp(icalcomponent* comp);
-void icalcomponent_set_dtstamp(icalcomponent* comp, struct icaltimetype v);
-
-
-void icalcomponent_set_summary(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_summary(icalcomponent* comp);
-
-void icalcomponent_set_comment(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_comment(icalcomponent* comp);
-
-void icalcomponent_set_uid(icalcomponent* comp, const char* v);
-const char* icalcomponent_get_uid(icalcomponent* comp);
-
-void icalcomponent_set_recurrenceid(icalcomponent* comp, 
-                                   struct icaltimetype v);
-struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent* comp);
-
-
-void icalcomponent_set_organizer(icalcomponent* comp, 
-                                struct icalorganizertype org);
-                                 struct icalorganizertype icalcomponent_get_organizer(icalcomponent* comp);
-
-
-void icalcomponent_add_attendee(icalcomponent *comp,
-                               struct icalattendeetype attendee);
-
-int icalcomponent_remove_attendee(icalcomponent *comp, char* cuid);
-
-/* Get the Nth attendee. Out of range indices return an attendee
-   with cuid == 0 */
-struct icalattendeetype icalcomponent_get_attendee(icalcomponent *comp,
-  int index);
-
-
-
-
-/*************** Type Specific routines ***************/
-
-icalcomponent* icalcomponent_new_vcalendar();
-icalcomponent* icalcomponent_new_vevent();
-icalcomponent* icalcomponent_new_vtodo();
-icalcomponent* icalcomponent_new_vjournal();
-icalcomponent* icalcomponent_new_valarm();
-icalcomponent* icalcomponent_new_vfreebusy();
-icalcomponent* icalcomponent_new_vtimezone();
-icalcomponent* icalcomponent_new_xstandard();
-icalcomponent* icalcomponent_new_xdaylight();
-
-
-
-#endif /* !ICALCOMPONENT_H */
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedparameter.c.in b/src/plugins/vcalendar/libical/libical/icalderivedparameter.c.in
deleted file mode 100644 (file)
index ddc52cc..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedparameters.{c,h}
-  CREATOR: eric 09 May 1999
-  
-  $Id$
-  $Locker$
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalderivedparameters.{c,h}
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
- ======================================================================*/
-/*#line 29 "icalparameter.c.in"*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "icalparameter.h"
-#include "icalparameterimpl.h"
-
-#include "icalproperty.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-
-#include <stdlib.h> /* for malloc() */
-#include <errno.h>
-#include <string.h> /* for memset() */
-
-icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
-
-struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind);
-
-/* This map associates each of the parameters with the string
-   representation of the paramter's name */
-struct icalparameter_kind_map {
-    icalparameter_kind kind;
-    char *name;
-    
-};
-
-static struct icalparameter_kind_map parameter_map[];
-
-
-const char* icalparameter_kind_to_string(icalparameter_kind kind)
-{
-    int i;
-
-    for (i=0; parameter_map[i].kind != ICAL_NO_PARAMETER; i++) {
-       if (parameter_map[i].kind == kind) {
-           return parameter_map[i].name;
-       }
-    }
-
-    return 0;
-
-}
-
-icalparameter_kind icalparameter_string_to_kind(const char* string)
-{
-    int i;
-
-    if (string ==0 ) { 
-       return ICAL_NO_PARAMETER;
-    }
-
-    for (i=0; parameter_map[i].kind  != ICAL_NO_PARAMETER; i++) {
-
-       if (strcmp(parameter_map[i].name, string) == 0) {
-           return parameter_map[i].kind;
-       }
-    }
-
-    if(strncmp(string,"X-",2)==0){
-       return ICAL_X_PARAMETER;
-    }
-
-    return ICAL_NO_PARAMETER;
-}
-
-/* This map associates the enumerations for the VALUE parameter with
-   the kinds of VALUEs. */
-
-struct icalparameter_value_kind_map {
-    icalparameter_value value; 
-    icalvalue_kind kind; 
-};
-
-static struct icalparameter_value_kind_map value_kind_map[];
-
-
-icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value)
-{
-    int i;
-
-    for (i=0; value_kind_map[i].kind  != ICAL_NO_VALUE; i++) {
-
-       if (value_kind_map[i].value == value) {
-           return value_kind_map[i].kind;
-       }
-    }
-
-    return ICAL_NO_VALUE;
-}
-
-
-/* This map associates the parameter enumerations with a specific parameter and the string representation of the enumeration */
-
-struct icalparameter_map {
-    icalparameter_kind kind;
-    int enumeration;
-    const char* str;
-};
-
-
-static struct icalparameter_map icalparameter_map[];
-
-
-const char* icalparameter_enum_to_string(int e) 
-{
-    int i;
-
-    icalerror_check_arg_rz(e >= ICALPARAMETER_FIRST_ENUM,"e");
-    icalerror_check_arg_rz(e <= ICALPARAMETER_LAST_ENUM,"e");
-
-    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
-        if(e == icalparameter_map[i].enumeration){
-            return icalparameter_map[i].str;
-        }
-    }
-
-    return 0;
-}
-
-int icalparameter_string_to_enum(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rz(str != 0,"str");
-
-    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
-        if(strcmp(str,icalparameter_map[i].str) == 0) {
-            return icalparameter_map[i].enumeration;
-        }
-    }
-
-    return 0;
-}
-
-icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val)
-{
-
-    struct icalparameter_impl* param=0;
-    int found_kind = 0;
-    int i;
-
-    icalerror_check_arg_rz((val!=0),"val");
-
-    /* Search through the parameter map to find a matching kind */
-
-    param = icalparameter_new_impl(kind);
-
-    for (i=0; icalparameter_map[i].kind != ICAL_NO_PARAMETER; i++){
-        if(kind == icalparameter_map[i].kind) {
-           char *raw_val = strdup(val);
-           char *value = raw_val;
-            found_kind = 1;
-           if(value[0] == '\"' && value[strlen(value) - 1] == '\"') {
-               value++;
-               value[strlen(value) - 1] = '\0';
-           }
-            if(strcmp(value,icalparameter_map[i].str) == 0) {
-               free(raw_val);
-                param->data = (int)icalparameter_map[i].enumeration;
-                return param;
-            }
-           free(raw_val);
-        }
-    }
-    
-    if(found_kind == 1){
-        /* The kind was in the parameter map, but the string did not
-           match, so assume that it is an alternate value, like an
-           X-value.*/
-        
-        icalparameter_set_xvalue(param, val);
-
-    } else {
-        /* If the kind was not found, then it must be a string type */
-        
-        ((struct icalparameter_impl*)param)->string = icalmemory_strdup(val);
-
-    }
-
-   return param;
-}
-
-
-
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedparameter.h.in b/src/plugins/vcalendar/libical/libical/icalderivedparameter.h.in
deleted file mode 100644 (file)
index a291292..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalparam.h
-  CREATOR: eric 20 March 1999
-
-
-  $Id$
-  $Locker$
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparam.h
-
-  ======================================================================*/
-
-#ifndef ICALDERIVEDPARAMETER_H
-#define ICALDERIVEDPARAMETER_H
-
-
-typedef void icalparameter;
-
-const char* icalparameter_enum_to_string(int e);
-int icalparameter_string_to_enum(const char* str); 
-
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedproperty.c.in b/src/plugins/vcalendar/libical/libical/icalderivedproperty.c.in
deleted file mode 100644 (file)
index 62addce..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- Mode: C -*- */
-
-/*======================================================================
-  FILE: icalderivedproperty.c
-  CREATOR: eric 15 Feb 2001
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalproperty.c
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalproperty.h"
-#include "icalcomponent.h"
-#include "pvl.h"
-#include "icalenums.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-
-#include <string.h> /* For icalmemory_strdup, rindex */
-#include <assert.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h> /* for printf */
-#include <stdarg.h> /* for va_list, va_start, etc. */
-                                               
-#define TMP_BUF_SIZE 1024
-
-struct icalproperty_impl*
-icalproperty_new_impl (icalproperty_kind kind);
-
-void icalproperty_add_parameters (struct icalproperty_impl *prop, va_list args);
-
-/* This map associates the property kinds with the string
-   representation of the property name and the kind of VALUE that the
-   property uses as a default */
-
-struct  icalproperty_map {
-       icalproperty_kind kind;
-       const char *name;
-       icalvalue_kind value;
-
-};
-
-static struct icalproperty_map property_map[];
-
-const char* icalproperty_kind_to_string(icalproperty_kind kind)
-{
-    int i;
-
-    for (i=0; property_map[i].kind != ICAL_NO_PROPERTY; i++) {
-       if (property_map[i].kind == kind) {
-           return property_map[i].name;
-       }
-    }
-
-    return 0;
-
-}
-
-
-icalproperty_kind icalproperty_string_to_kind(const char* string)
-{
-    int i;
-
-    if (string ==0 ) { 
-       return ICAL_NO_PROPERTY;
-    }
-
-
-    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
-       if (strcmp(property_map[i].name, string) == 0) {
-           return property_map[i].kind;
-       }
-    }
-
-    if(strncmp(string,"X-",2)==0){
-       return ICAL_X_PROPERTY;
-    }
-
-
-    return ICAL_NO_PROPERTY;
-}
-
-
-icalvalue_kind icalproperty_value_kind_to_kind(icalvalue_kind kind)
-{
-    int i;
-
-    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
-       if ( property_map[i].value == kind ) {
-           return property_map[i].kind;
-       }
-    }
-
-    return ICAL_NO_VALUE;
-}
-
-
-
-icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind)
-{
-    int i;
-
-    for (i=0; property_map[i].kind  != ICAL_NO_PROPERTY; i++) {
-       if ( property_map[i].kind == kind ) {
-           return property_map[i].value;
-       }
-    }
-
-    return ICAL_NO_VALUE;
-}
-
-
-/* This map associates the property enumerations with the king of
-   property that they are used in and the string representation of the
-   enumeration */
-
-struct icalproperty_enum_map {
-    icalproperty_kind prop;
-    int prop_enum;
-    const char* str;
-}; 
-
-static struct icalproperty_enum_map enum_map[];
-
-
-const char* icalproperty_enum_to_string(int e)
-{
-    icalerror_check_arg_rz(e >= ICALPROPERTY_FIRST_ENUM,"e");
-    icalerror_check_arg_rz(e <= ICALPROPERTY_LAST_ENUM,"e");
-
-    return enum_map[e-ICALPROPERTY_FIRST_ENUM].str;
-}
-
-int icalproperty_string_to_enum(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rz(str!=0,"str")
-
-    while(*str == ' '){
-       str++;
-    }
-
-    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
-       if ( strcmp(enum_map[i-ICALPROPERTY_FIRST_ENUM].str, str) == 0) {
-           return enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum;
-       }
-    }
-
-    return 0;
-}
-
-int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e)
-{
-    int i;
-
-
-    for (i=ICALPROPERTY_FIRST_ENUM; i != ICALPROPERTY_LAST_ENUM; i++) {
-        if(enum_map[i-ICALPROPERTY_FIRST_ENUM].prop_enum == e && 
-           enum_map[i-ICALPROPERTY_FIRST_ENUM].prop == kind ){
-            return 1;
-        }
-    }
-
-    return 0;
-}
-
-
-const char* icalproperty_method_to_string(icalproperty_method method)
-{
-    icalerror_check_arg_rz(method >= ICAL_METHOD_X,"method");
-    icalerror_check_arg_rz(method <= ICAL_METHOD_NONE,"method");
-
-    return enum_map[method-ICALPROPERTY_FIRST_ENUM].str;
-}
-
-icalproperty_method icalproperty_string_to_method(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rx(str!=0,"str",ICAL_METHOD_NONE)
-
-    while(*str == ' '){
-       str++;
-    }
-
-    for (i=ICAL_METHOD_X-ICALPROPERTY_FIRST_ENUM; 
-         i != ICAL_METHOD_NONE-ICALPROPERTY_FIRST_ENUM;
-         i++) {
-       if ( strcmp(enum_map[i].str, str) == 0) {
-           return (icalproperty_method)enum_map[i].prop_enum;
-       }
-    }
-
-    return ICAL_METHOD_NONE;
-}
-
-
-const char* icalenum_status_to_string(icalproperty_status status)
-{
-    icalerror_check_arg_rz(status >= ICAL_STATUS_X,"status");
-    icalerror_check_arg_rz(status <= ICAL_STATUS_NONE,"status");
-
-    return enum_map[status-ICALPROPERTY_FIRST_ENUM].str;
-}
-
-icalproperty_status icalenum_string_to_status(const char* str)
-{
-    int i;
-
-    icalerror_check_arg_rx(str!=0,"str",ICAL_STATUS_NONE)
-
-    while(*str == ' '){
-       str++;
-    }
-
-    for (i=ICAL_STATUS_X-ICALPROPERTY_FIRST_ENUM; 
-         i != ICAL_STATUS_NONE-ICALPROPERTY_FIRST_ENUM;
-         i++) {
-       if ( strcmp(enum_map[i].str, str) == 0) {
-           return (icalproperty_method)enum_map[i].prop_enum;
-       }
-    }
-
-    return ICAL_STATUS_NONE;
-
-}
-
-
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedproperty.h.in b/src/plugins/vcalendar/libical/libical/icalderivedproperty.h.in
deleted file mode 100644 (file)
index 2295f39..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedproperties.{c,h}
-  CREATOR: eric 09 May 1999
-  
-  $Id$
-    
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
- ======================================================================*/
-
-
-#ifndef ICALDERIVEDPROPERTY_H
-#define ICALDERIVEDPROPERTY_H
-
-#include <time.h>
-#include "icalparameter.h"
-#include "icalderivedvalue.h"  
-#include "icalrecur.h"
-
-typedef void icalproperty;
-
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedvalue.c.in b/src/plugins/vcalendar/libical/libical/icalderivedvalue.c.in
deleted file mode 100644 (file)
index 2d7092a..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalvalue.c
-  CREATOR: eric 02 May 1999
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.c
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
-
-======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-#include "icalenums.h"
-
-#include "icalvalueimpl.h"
-
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for sprintf */
-#include <string.h> /* For memset, others */
-#include <stddef.h> /* For offsetof() macro */
-#include <errno.h>
-#include <time.h> /* for mktime */
-#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
-   representation */
-struct icalvalue_kind_map {
-       icalvalue_kind kind;
-       char name[20];
-};
-
-static struct icalvalue_kind_map value_map[]; 
-
-const char* icalvalue_kind_to_string(icalvalue_kind kind)
-{
-    int i;
-
-    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
-       if (value_map[i].kind == kind) {
-           return value_map[i].name;
-       }
-    }
-
-    return 0;
-}
-
-icalvalue_kind icalvalue_string_to_kind(const char* str)
-{
-    int i;
-
-    for (i=0; value_map[i].kind != ICAL_NO_VALUE; i++) {
-       if (strcmp(value_map[i].name,str) == 0) {
-           return value_map[i].kind;
-       }
-    }
-
-    return  value_map[i].kind;
-
-}
-
-icalvalue* icalvalue_new_x (const char* v){
-   struct icalvalue_impl* impl;
-   icalerror_check_arg_rz( (v!=0),"v");
-   impl = icalvalue_new_impl(ICAL_X_VALUE);
-   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");
-    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);
-
-    if (impl->x_value == 0){
-      errno = ENOMEM;
-    }
- }
-const char* icalvalue_get_x(icalvalue* value) {
-
-    icalerror_check_arg_rz( (value!=0),"value");
-    icalerror_check_value_type(value, ICAL_X_VALUE);
-    return ((struct icalvalue_impl*)value)->x_value;
-}
-
-/* Recur is a special case, so it is not auto generated. */
-icalvalue*
-icalvalue_new_recur (struct icalrecurrencetype v)
-{
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_RECUR_VALUE);
-    
-   icalvalue_set_recur((icalvalue*)impl,v);
-
-   return (icalvalue*)impl;
-}
-
-void
-icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v)
-{
-    struct icalvalue_impl* impl; 
-    
-    icalerror_check_arg_rv( (value!=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;
-    }
-
-    impl->data.v_recur = malloc(sizeof(struct icalrecurrencetype));
-
-    if (impl->data.v_recur == 0){
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return;
-    } else {
-       memcpy(impl->data.v_recur, &v, sizeof(struct icalrecurrencetype));
-    }
-              
-}
-
-struct icalrecurrencetype
-icalvalue_get_recur(icalvalue* value)
-{
-    icalerror_check_arg( (value!=0),"value");
-    icalerror_check_value_type(value, ICAL_RECUR_VALUE);
-  
-    return *(((struct icalvalue_impl*)value)->data.v_recur);
-}
-
-
-
-
-icalvalue*
-icalvalue_new_trigger (struct icaltriggertype v)
-{
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_TRIGGER_VALUE);
-   icalvalue_set_trigger((icalvalue*)impl,v);
-
-   return (icalvalue*)impl;
-}
-
-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;
-   } else {
-       icalvalue_set_duration((icalvalue*)impl,v.duration);
-       impl->kind = ICAL_DURATION_VALUE;
-   }
-
-}
-
-struct icaltriggertype
-icalvalue_get_trigger(icalvalue* value)
-{
-    struct icalvalue_impl *impl = (struct icalvalue_impl*)value;
-    struct icaltriggertype tr;
-
-    icalerror_check_arg( (value!=0),"value");
-
-    if(impl->kind == ICAL_DATETIME_VALUE){
-        tr.duration = icaldurationtype_from_int(0);
-        tr.time = impl->data.v_time;
-    } else if(impl->kind == ICAL_DURATION_VALUE){
-       tr.time = icaltime_null_time();
-       tr.duration = impl->data.v_duration;
-    } else {
-       tr.duration = icaldurationtype_from_int(0);
-       tr.time = icaltime_null_time();
-       icalerror_set_errno(ICAL_BADARG_ERROR);
-    }
-
-    return tr;
-}
-
-/* DATE-TIME-PERIOD is a special case, and is not auto generated */
-
-icalvalue*
-icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v)
-{
-   struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_DATETIMEPERIOD_VALUE);
-
-   icalvalue_set_datetimeperiod((icalvalue*)impl,v);
-
-   return (icalvalue*)impl;
-}
-
-void
-icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v)
-{
-    struct icalvalue_impl* impl = (struct icalvalue_impl*)value;
-    
-    icalerror_check_arg_rv( (value!=0),"value");
-    
-    icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
-
-    if(!icaltime_is_null_time(v.time)){
-       if(!icaltime_is_valid_time(v.time)){
-           icalerror_set_errno(ICAL_BADARG_ERROR);
-           return;
-       }
-       impl->kind = ICAL_DATETIME_VALUE;
-       icalvalue_set_datetime(impl,v.time);
-    } else if (!icalperiodtype_is_null_period(v.period)) {
-       if(!icalperiodtype_is_valid_period(v.period)){
-           icalerror_set_errno(ICAL_BADARG_ERROR);
-           return;
-       }
-       impl->kind = ICAL_PERIOD_VALUE;
-       icalvalue_set_period(impl,v.period);
-    } else {
-       icalerror_set_errno(ICAL_BADARG_ERROR);
-    }
-}
-
-struct icaldatetimeperiodtype
-icalvalue_get_datetimeperiod(icalvalue* value)
-{
-  struct icaldatetimeperiodtype dtp;
-  
-  struct icalvalue_impl* impl = (struct icalvalue_impl*)value;
-  icalerror_check_arg( (value!=0),"value");
-  icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE);
-  
-  if(impl->kind == ICAL_DATETIME_VALUE){
-      dtp.period = icalperiodtype_null_period();
-      dtp.time = impl->data.v_time;
-  } else if(impl->kind == ICAL_PERIOD_VALUE) {
-      dtp.period = impl->data.v_period;
-      dtp.time = icaltime_null_time();
-  } else {
-      dtp.period = icalperiodtype_null_period();
-      dtp.time = icaltime_null_time();
-      icalerror_set_errno(ICAL_BADARG_ERROR);
-  }    
-
-  return dtp;
-}
-
-
-
-
-
-
-
-
-
-/* The remaining interfaces are 'new', 'set' and 'get' for each of the value
-   types */
-
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/src/plugins/vcalendar/libical/libical/icalderivedvalue.h.in b/src/plugins/vcalendar/libical/libical/icalderivedvalue.h.in
deleted file mode 100644 (file)
index c1aba7f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalvalue.h
-  CREATOR: eric 20 March 1999
-
-
-  $Id$
-  $Locker$
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalvalue.h
-
-  ======================================================================*/
-
-#ifndef ICALDERIVEDVALUE_H
-#define ICALDERIVEDVALUE_H
-
-#include "icaltypes.h"
-#include "icalrecur.h"
-#include "icaltime.h"
-#include "icalduration.h"
-#include "icalperiod.h"
-     
-typedef void icalvalue;
-
-
-
-void icalvalue_set_x(icalvalue* value, const char* v);
-icalvalue* icalvalue_new_x(const char* v);
-const char* icalvalue_get_x(icalvalue* value);
-
-icalvalue* icalvalue_new_recur (struct icalrecurrencetype v);
-void icalvalue_set_recur(icalvalue* value, struct icalrecurrencetype v);
-struct icalrecurrencetype icalvalue_get_recur(icalvalue* value);
-
-icalvalue* icalvalue_new_trigger (struct icaltriggertype v);
-void icalvalue_set_trigger(icalvalue* value, struct icaltriggertype v);
-struct icaltriggertype icalvalue_get_trigger(icalvalue* value);
-
-icalvalue* icalvalue_new_datetimeperiod (struct icaldatetimeperiodtype v);
-void icalvalue_set_datetimeperiod(icalvalue* value, struct icaldatetimeperiodtype v);
-struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(icalvalue* value);
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/src/plugins/vcalendar/libical/libical/icalduration.c b/src/plugins/vcalendar/libical/libical/icalduration.c
deleted file mode 100644 (file)
index 356809f..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icaltime.c
-  CREATOR: eric 02 June 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalduration.h"
-
-#include <glib.h>
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef ICAL_NO_LIBICAL
-#define icalerror_set_errno(x)
-#define  icalerror_check_arg_rv(x,y)
-#define  icalerror_check_arg_re(x,y,z)
-#else
-#include "icalerror.h"
-#include "icalmemory.h"
-#endif
-
-
-
-
-/* From Seth Alves,  <alves@hungry.com>   */
-struct icaldurationtype icaldurationtype_from_int(int t)
-{
-        struct icaldurationtype dur;
-        int used = 0;
-
-        dur = icaldurationtype_null_duration();
-
-        if(t < 0){
-            dur.is_neg = 1;
-            t = -t;
-        }
-
-        dur.weeks = (t - used) / (60 * 60 * 24 * 7);
-        used += dur.weeks * (60 * 60 * 24 * 7);
-        dur.days = (t - used) / (60 * 60 * 24);
-        used += dur.days * (60 * 60 * 24);
-        dur.hours = (t - used) / (60 * 60);
-        used += dur.hours * (60 * 60);
-        dur.minutes = (t - used) / (60);
-        used += dur.minutes * (60);
-        dur.seconds = (t - used);
-        return dur;
-}
-
-#ifndef ICAL_NO_LIBICAL
-#include "icalvalue.h"
-struct icaldurationtype icaldurationtype_from_string(const char* str)
-{
-
-    int i;
-    int begin_flag = 0;
-    int time_flag = 0;
-    int date_flag = 0;
-    int week_flag = 0;
-    int digits=-1;
-    int scan_size = -1;
-    int size = strlen(str);
-    char p;
-    struct icaldurationtype d;
-
-    memset(&d, 0, sizeof(struct icaldurationtype));
-
-    for(i=0;i != size;i++){
-       p = str[i];
-       
-       switch(p) 
-           {
-           case '-': {
-               if(i != 0 || begin_flag == 1) goto error;
-
-               d.is_neg = 1;
-               break;
-           }
-
-           case 'P': {
-               if (i != 0 && i !=1 ) goto error;
-               begin_flag = 1;
-               break;
-           }
-
-           case 'T': {
-               time_flag = 1;
-               break;
-           }
-
-           case '0':
-           case '1':
-           case '2':
-           case '3':
-           case '4':
-           case '5':
-           case '6':
-           case '7':
-           case '8':
-           case '9':
-               { 
-                   
-                   /* HACK. Skip any more digits if the l;ast one
-                       read has not been assigned */
-                   if(digits != -1){
-                       break;
-                   }
-
-                   if (begin_flag == 0) goto error;
-                   /* Get all of the digits, not one at a time */
-                   scan_size = sscanf((char*)(str+i),"%d",&digits);
-                   if(scan_size == 0) goto error;
-                   break;
-               }
-
-           case 'H': { 
-               if (time_flag == 0||week_flag == 1||d.hours !=0||digits ==-1) 
-                   goto error;
-               d.hours = digits; digits = -1;
-               break;
-           }
-           case 'M': {
-               if (time_flag == 0||week_flag==1||d.minutes != 0||digits ==-1) 
-                   goto error;
-               d.minutes = digits; digits = -1;            
-               break;
-           }
-           case 'S': {
-               if (time_flag == 0||week_flag==1||d.seconds!=0||digits ==-1) 
-                   goto error;
-               d.seconds = digits; digits = -1;            
-               break;
-           }
-           case 'W': {
-               if (time_flag==1||date_flag==1||d.weeks!=0||digits ==-1) 
-                   goto error;
-               week_flag = 1;  
-               d.weeks = digits; digits = -1;      
-               break;
-           }
-           case 'D': {
-               if (time_flag==1||week_flag==1||d.days!=0||digits ==-1) 
-                   goto error;
-               date_flag = 1;
-               d.days = digits; digits = -1;       
-               break;
-           }
-           default: {
-               goto error;
-           }
-
-           }
-    }
-
-    return d;
-       
-
- error:
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    memset(&d, 0, sizeof(struct icaldurationtype));
-    return d;
-
-}
-
-#define TMP_BUF_SIZE 1024
-void append_duration_segment(char** buf, char** buf_ptr, size_t* buf_size, 
-                            char* sep, unsigned int value) {
-
-    char temp[TMP_BUF_SIZE];
-
-    sprintf(temp,"%d",value);
-
-    icalmemory_append_string(buf, buf_ptr, buf_size, temp);
-    icalmemory_append_string(buf, buf_ptr, buf_size, sep);
-    
-}
-
-char* icaldurationtype_as_ical_string(struct icaldurationtype d) 
-{
-
-    char *buf, *output_line;
-    size_t buf_size = 256;
-    char* buf_ptr = 0;
-    int seconds;
-
-    buf = (char*)icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-    
-
-    seconds = icaldurationtype_as_int(d);
-
-    if(seconds !=0){
-       
-       if(d.is_neg == 1){
-           icalmemory_append_char(&buf, &buf_ptr, &buf_size, '-'); 
-       }
-
-       icalmemory_append_char(&buf, &buf_ptr, &buf_size, 'P');
-    
-       if (d.weeks != 0 ) {
-           append_duration_segment(&buf, &buf_ptr, &buf_size, "W", d.weeks);
-       }
-       
-       if (d.days != 0 ) {
-           append_duration_segment(&buf, &buf_ptr, &buf_size, "D", d.days);
-       }
-       
-       if (d.hours != 0 || d.minutes != 0 || d.seconds != 0) {
-           
-           icalmemory_append_string(&buf, &buf_ptr, &buf_size, "T");
-           
-           if (d.hours != 0 ) {
-               append_duration_segment(&buf, &buf_ptr, &buf_size, "H", d.hours);
-           }
-           if (d.minutes != 0 ) {
-               append_duration_segment(&buf, &buf_ptr, &buf_size, "M", 
-                                       d.minutes);
-           }
-           if (d.seconds != 0 ) {
-               append_duration_segment(&buf, &buf_ptr, &buf_size, "S", 
-                                       d.seconds);
-           }
-           
-       }
-    } else {
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, "PTS0");
-    }
-    output_line = icalmemory_tmp_copy(buf);
-    icalmemory_free_buffer(buf);
-
-    return output_line;
-    
-}
-
-#endif
-
-
-/* From Russel Steinthal */
-int icaldurationtype_as_int(struct icaldurationtype dur)
-{
-    return (int)( (dur.seconds +
-                  (60 * dur.minutes) +
-                  (60 * 60 * dur.hours) +
-                  (60 * 60 * 24 * dur.days) +
-                  (60 * 60 * 24 * 7 * dur.weeks))
-                 * (dur.is_neg==1? -1 : 1) ) ;
-} 
-
-struct icaldurationtype icaldurationtype_null_duration()
-{
-    struct icaldurationtype d;
-    
-    memset(&d,0,sizeof(struct icaldurationtype));
-    
-    return d;
-}
-
-int icaldurationtype_is_null_duration(struct icaldurationtype d)
-{
-    if(icaldurationtype_as_int(d) == 0){
-       return 1;
-    } else {
-       return 0;
-    }
-}
-
-
-
-struct icaltimetype  icaltime_add(struct icaltimetype t,
-                                 struct icaldurationtype  d)
-{
-    int dt = icaldurationtype_as_int(d);
-    
-#ifdef G_OS_WIN32
-       GTimeZone *zone;
-       GDateTime *dtm;
-
-       if (t.is_utc == 1)
-               zone = g_time_zone_new_utc();
-       else
-               zone = g_time_zone_new_local();
-
-       dtm = g_date_time_new(
-                               zone,
-                               t.year,
-                               t.month,
-                               t.day,
-                               t.hour,
-                               t.minute,
-                               t.second);
-
-       GDateTime *d2 = g_date_time_add_seconds(dtm, dt);
-
-       t.year = g_date_time_get_year(d2);
-       t.month = g_date_time_get_month(d2);
-       t.day = g_date_time_get_day_of_month(d2);
-       t.hour = g_date_time_get_hour(d2);
-       t.minute = g_date_time_get_minute(d2);
-       t.second = g_date_time_get_second(d2);
-
-       g_date_time_unref(dtm);
-       g_date_time_unref(d2);
-       g_time_zone_unref(zone);
-#else
-    t.second += dt;
-    
-    t = icaltime_normalize(t);
-#endif
-
-    return t;
-}
-
-struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
-                                          struct icaltimetype t2)
-{
-
-    time_t t1t = icaltime_as_timet(t1);
-    time_t t2t = icaltime_as_timet(t2);
-
-    return icaldurationtype_from_int(t1t-t2t);
-
-
-}
-
diff --git a/src/plugins/vcalendar/libical/libical/icalduration.h b/src/plugins/vcalendar/libical/libical/icalduration.h
deleted file mode 100644 (file)
index dd6e311..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalduration.h
- CREATOR: eric 26 Jan 2001
-
-
- $Id$
- $Locker$
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-#ifndef ICALDURATION_H
-#define ICALDURATION_H
-
-#include "icaltime.h"
-
-struct icaldurationtype
-{
-       int is_neg;
-       unsigned int days;
-       unsigned int weeks;
-       unsigned int hours;
-       unsigned int minutes;
-       unsigned int seconds;
-};
-
-struct icaldurationtype icaldurationtype_from_int(int t);
-struct icaldurationtype icaldurationtype_from_string(const char*);
-int icaldurationtype_as_int(struct icaldurationtype duration);
-char* icaldurationtype_as_ical_string(struct icaldurationtype d);
-struct icaldurationtype icaldurationtype_null_duration();
-int icaldurationtype_is_null_duration(struct icaldurationtype d);
-
-struct icaltimetype  icaltime_add(struct icaltimetype t,
-                                 struct icaldurationtype  d);
-
-struct icaldurationtype  icaltime_subtract(struct icaltimetype t1,
-                                          struct icaltimetype t2);
-
-#endif /* !ICALDURATION_H */
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalenums.c b/src/plugins/vcalendar/libical/libical/icalenums.c
deleted file mode 100644 (file)
index 6751933..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalenum.c
-  CREATOR: eric 29 April 1999
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalenum.c
-
-  ======================================================================*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icalenums.h"
-
-#include <stdio.h> /* For fprintf */
-#include <stdio.h> /* For stderr */
-#include <string.h> /* For strncmp */
-#include <assert.h>
-
-
-
-struct {
-        enum icalrequeststatus kind;
-       int major;
-       int minor;
-       const char* str;
-} request_status_map[] = {
-    {ICAL_2_0_SUCCESS_STATUS, 2,0,"Success."},
-    {ICAL_2_1_FALLBACK_STATUS, 2,1,"Success but fallback taken  on one or more property  values."},
-    {ICAL_2_2_IGPROP_STATUS, 2,2,"Success, invalid property ignored."},
-    {ICAL_2_3_IGPARAM_STATUS, 2,3,"Success, invalid property parameter ignored."},
-    {ICAL_2_4_IGXPROP_STATUS, 2,4,"Success, unknown non-standard property ignored."},
-    {ICAL_2_5_IGXPARAM_STATUS, 2,5,"Success, unknown non standard property value  ignored."},
-    {ICAL_2_6_IGCOMP_STATUS, 2,6,"Success, invalid calendar component ignored."},
-    {ICAL_2_7_FORWARD_STATUS, 2,7,"Success, request forwarded to Calendar User."},
-    {ICAL_2_8_ONEEVENT_STATUS, 2,8,"Success, repeating event ignored. Scheduled as a  single component."},
-    {ICAL_2_9_TRUNC_STATUS, 2,9,"Success, truncated end date time to date boundary."},
-    {ICAL_2_10_ONETODO_STATUS, 2,10,"Success, repeating VTODO ignored. Scheduled as a  single VTODO."},
-    {ICAL_2_11_TRUNCRRULE_STATUS, 2,11,"Success, unbounded RRULE clipped at some finite  number of instances  "},
-    {ICAL_3_0_INVPROPNAME_STATUS, 3,0,"Invalid property name."},
-    {ICAL_3_1_INVPROPVAL_STATUS, 3,1,"Invalid property value."},
-    {ICAL_3_2_INVPARAM_STATUS, 3,2,"Invalid property parameter."},
-    {ICAL_3_3_INVPARAMVAL_STATUS, 3,3,"Invalid property parameter  value."},
-    {ICAL_3_4_INVCOMP_STATUS, 3,4,"Invalid calendar component."},
-    {ICAL_3_5_INVTIME_STATUS, 3,5,"Invalid date or time."},
-    {ICAL_3_6_INVRULE_STATUS, 3,6,"Invalid rule."},
-    {ICAL_3_7_INVCU_STATUS, 3,7,"Invalid Calendar User."},
-    {ICAL_3_8_NOAUTH_STATUS, 3,8,"No authority."},
-    {ICAL_3_9_BADVERSION_STATUS, 3,9,"Unsupported version."},
-    {ICAL_3_10_TOOBIG_STATUS, 3,10,"Request entity too large."},
-    {ICAL_3_11_MISSREQCOMP_STATUS, 3,11,"Required component or property missing."},
-    {ICAL_3_12_UNKCOMP_STATUS, 3,12,"Unknown component or property found."},
-    {ICAL_3_13_BADCOMP_STATUS, 3,13,"Unsupported component or property found"},
-    {ICAL_3_14_NOCAP_STATUS, 3,14,"Unsupported capability."},
-    {ICAL_4_0_BUSY_STATUS, 4,0,"Event conflict. Date/time  is busy."},
-    {ICAL_5_0_MAYBE_STATUS, 5,0,"Request MAY supported."},
-    {ICAL_5_1_UNAVAIL_STATUS, 5,1,"Service unavailable."},
-    {ICAL_5_2_NOSERVICE_STATUS, 5,2,"Invalid calendar service."},
-    {ICAL_5_3_NOSCHED_STATUS, 5,3,"No scheduling support for  user."},
-    {ICAL_UNKNOWN_STATUS, 0,0,"Error: Unknown request status"}
-};
-
-
-const char* icalenum_reqstat_desc(icalrequeststatus stat)
-{
-
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-       if ( request_status_map[i].kind ==  stat) {
-           return request_status_map[i].str;
-       }
-    }
-
-    return 0;
-}
-
-
-short icalenum_reqstat_major(icalrequeststatus stat)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-       if ( request_status_map[i].kind ==  stat) {
-           return request_status_map[i].major;
-       }
-    }
-    return -1;
-}
-
-short icalenum_reqstat_minor(icalrequeststatus stat)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-       if ( request_status_map[i].kind ==  stat) {
-           return request_status_map[i].minor;
-       }
-    }
-    return -1;
-}
-
-
-icalrequeststatus icalenum_num_to_reqstat(short major, short minor)
-{
-    int i;
-
-    for (i=0; request_status_map[i].kind  != ICAL_UNKNOWN_STATUS; i++) {
-       if ( request_status_map[i].major ==  major && request_status_map[i].minor ==  minor) {
-           return request_status_map[i].kind;
-       }
-    }
-    return 0;
-}
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalenums.h b/src/plugins/vcalendar/libical/libical/icalenums.h
deleted file mode 100644 (file)
index 21031dd..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-
-/* -*- Mode: C -*-*/
-/*======================================================================
- FILE: icalenums.h
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalenums.h
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
-======================================================================*/
-
-#ifndef ICALENUMS_H
-#define ICALENUMS_H
-
-
-
-/***********************************************************************
- * Component enumerations
-**********************************************************************/
-
-typedef enum icalcomponent_kind {
-    ICAL_NO_COMPONENT,
-    ICAL_ANY_COMPONENT,        /* Used to select all components*/
-    ICAL_XROOT_COMPONENT,
-    ICAL_XATTACH_COMPONENT, /* MIME attached data, returned by parser. */
-    ICAL_VEVENT_COMPONENT,
-    ICAL_VTODO_COMPONENT,
-    ICAL_VJOURNAL_COMPONENT,
-    ICAL_VCALENDAR_COMPONENT,
-    ICAL_VFREEBUSY_COMPONENT,
-    ICAL_VALARM_COMPONENT,
-    ICAL_XAUDIOALARM_COMPONENT,  
-    ICAL_XDISPLAYALARM_COMPONENT,
-    ICAL_XEMAILALARM_COMPONENT,
-    ICAL_XPROCEDUREALARM_COMPONENT,
-    ICAL_VTIMEZONE_COMPONENT,
-    ICAL_XSTANDARD_COMPONENT,
-    ICAL_XDAYLIGHT_COMPONENT,
-    ICAL_X_COMPONENT,
-    ICAL_VSCHEDULE_COMPONENT,
-    ICAL_VQUERY_COMPONENT,
-    ICAL_VCAR_COMPONENT,
-    ICAL_VCOMMAND_COMPONENT,
-    ICAL_XLICINVALID_COMPONENT,
-    ICAL_XLICMIMEPART_COMPONENT /* a non-stardard component that mirrors
-                               structure of MIME data */
-
-} icalcomponent_kind;
-
-
-
-/***********************************************************************
- * Request Status codes
- **********************************************************************/
-
-typedef enum icalrequeststatus {
-    ICAL_UNKNOWN_STATUS,
-    ICAL_2_0_SUCCESS_STATUS,
-    ICAL_2_1_FALLBACK_STATUS,
-    ICAL_2_2_IGPROP_STATUS,
-    ICAL_2_3_IGPARAM_STATUS,
-    ICAL_2_4_IGXPROP_STATUS,
-    ICAL_2_5_IGXPARAM_STATUS,
-    ICAL_2_6_IGCOMP_STATUS,
-    ICAL_2_7_FORWARD_STATUS,
-    ICAL_2_8_ONEEVENT_STATUS,
-    ICAL_2_9_TRUNC_STATUS,
-    ICAL_2_10_ONETODO_STATUS,
-    ICAL_2_11_TRUNCRRULE_STATUS,
-    ICAL_3_0_INVPROPNAME_STATUS,
-    ICAL_3_1_INVPROPVAL_STATUS,
-    ICAL_3_2_INVPARAM_STATUS,
-    ICAL_3_3_INVPARAMVAL_STATUS,
-    ICAL_3_4_INVCOMP_STATUS,
-    ICAL_3_5_INVTIME_STATUS,
-    ICAL_3_6_INVRULE_STATUS,
-    ICAL_3_7_INVCU_STATUS,
-    ICAL_3_8_NOAUTH_STATUS,
-    ICAL_3_9_BADVERSION_STATUS,
-    ICAL_3_10_TOOBIG_STATUS,
-    ICAL_3_11_MISSREQCOMP_STATUS,
-    ICAL_3_12_UNKCOMP_STATUS,
-    ICAL_3_13_BADCOMP_STATUS,
-    ICAL_3_14_NOCAP_STATUS,
-    ICAL_4_0_BUSY_STATUS,
-    ICAL_5_0_MAYBE_STATUS,
-    ICAL_5_1_UNAVAIL_STATUS,
-    ICAL_5_2_NOSERVICE_STATUS,
-    ICAL_5_3_NOSCHED_STATUS
-} icalrequeststatus;
-
-
-const char* icalenum_reqstat_desc(icalrequeststatus stat);
-short icalenum_reqstat_major(icalrequeststatus stat);
-short icalenum_reqstat_minor(icalrequeststatus stat);
-icalrequeststatus icalenum_num_to_reqstat(short major, short minor);
-
-/***********************************************************************
- * Conversion functions
-**********************************************************************/
-
-
-/* Thse routines used to be in icalenums.c, but were moved into the
-   icalproperty, icalparameter, icalvalue, or icalcomponent modules. */
-
-/* const char* icalproperty_kind_to_string(icalproperty_kind kind);*/
-#define icalenum_property_kind_to_string(x) icalproperty_kind_to_string(x)
-
-/*icalproperty_kind icalproperty_string_to_kind(const char* string)*/
-#define icalenum_string_to_property_kind(x) icalproperty_string_to_kind(x)
-
-/*icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);*/
-#define icalenum_property_kind_to_value_kind(x) icalproperty_kind_to_value_kind(x)
-
-/*const char* icalenum_method_to_string(icalproperty_method);*/
-#define icalenum_method_to_string(x) icalproperty_method_to_string(x)
-
-/*icalproperty_method icalenum_string_to_method(const char* string);*/
-#define icalenum_string_to_method(x) icalproperty_string_to_method(x)
-
-/*const char* icalenum_status_to_string(icalproperty_status);*/
-#define icalenum_status_to_string(x) icalproperty_status_to_string(x)
-
-/*icalproperty_status icalenum_string_to_status(const char* string);*/
-#define icalenum_string_to_status(x) icalproperty_string_to_status(x)
-
-/*icalvalue_kind icalenum_string_to_value_kind(const char* str);*/
-#define icalenum_string_to_value_kind(x) icalvalue_string_to_kind(x)
-
-/*const char* icalenum_value_kind_to_string(icalvalue_kind kind);*/
-#define icalenum_value_kind_to_string(x) icalvalue_kind_to_string(x)
-
-/*const char* icalenum_component_kind_to_string(icalcomponent_kind kind);*/
-#define icalenum_component_kind_to_string(x) icalcomponent_kind_to_string(x)
-
-/*icalcomponent_kind icalenum_string_to_component_kind(const char* string);*/
-#define icalenum_string_to_component_kind(x) icalcomponent_string_to_kind(x)
-
-
-#endif /* !ICALENUMS_H */
-
diff --git a/src/plugins/vcalendar/libical/libical/icalerror.c b/src/plugins/vcalendar/libical/libical/icalerror.c
deleted file mode 100644 (file)
index bfcbaaf..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalerror.c
-  CREATOR: eric 16 May 1999
-  
-  $Id$
-  $Locker$
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalerror.c
-
- ======================================================================*/
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include "icalerror.h"
-
-icalerrorenum icalerrno;
-
-int foo;
-void icalerror_stop_here(void)
-{
-    foo++; /* Keep optimizers from removing routine */
-}
-
-void icalerror_clear_errno() {
-    
-    icalerrno = ICAL_NO_ERROR;
-}
-
-#ifdef ICAL_ERRORS_ARE_FATAL
-int icalerror_errors_are_fatal = 1;
-#else
-int icalerror_errors_are_fatal = 0;
-#endif
-
-struct icalerror_state {
-    icalerrorenum error;
-    icalerrorstate state; 
-};
-
-struct icalerror_state error_state_map[] = 
-{ 
-    { ICAL_BADARG_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_NEWFAILED_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_DEFAULT}, 
-    { ICAL_PARSE_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_INTERNAL_ERROR,ICAL_ERROR_DEFAULT}, 
-    { ICAL_FILE_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_USAGE_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_UNIMPLEMENTED_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_UNKNOWN_ERROR,ICAL_ERROR_DEFAULT},
-    { ICAL_NO_ERROR,ICAL_ERROR_DEFAULT}
-
-};
-
-struct icalerror_string_map {
-    const char* str;
-    icalerrorenum error;
-    char name[160];
-};
-
-static struct icalerror_string_map string_map[] = 
-{
-    {"BADARG",ICAL_BADARG_ERROR,"BADARG: Bad argument to function"},
-    { "NEWFAILED",ICAL_NEWFAILED_ERROR,"NEWFAILED: Failed to create a new object via a *_new() routine"},
-    {"MALFORMEDDATA",ICAL_MALFORMEDDATA_ERROR,"MALFORMEDDATA: An input string was not correctly formed or a component has missing or extra properties"},
-    { "PARSE",ICAL_PARSE_ERROR,"PARSE: Failed to parse a part of an iCal component"},
-    {"INTERNAL",ICAL_INTERNAL_ERROR,"INTERNAL: Random internal error. This indicates an error in the library code, not an error in use"}, 
-    { "FILE",ICAL_FILE_ERROR,"FILE: An operation on a file failed. Check errno for more detail."},
-    { "USAGE",ICAL_USAGE_ERROR,"USAGE: Failed to propertyl sequence calls to a set of interfaces"},
-    { "UNIMPLEMENTED",ICAL_UNIMPLEMENTED_ERROR,"UNIMPLEMENTED: This feature has not been implemented"},
-    { "NO",ICAL_NO_ERROR,"NO: No error"},
-    {"UNKNOWN",ICAL_UNKNOWN_ERROR,"UNKNOWN: Unknown error type -- icalerror_strerror() was probably given bad input"}
-};
-
-
-icalerrorenum icalerror_error_from_string(const char* str){
-    icalerrorenum e = ICAL_UNKNOWN_ERROR;
-    int i = 0;
-
-    for( i = 0; string_map[i].error != ICAL_NO_ERROR; i++){
-        if (strcmp(string_map[i].str,str) == 0){
-            e = string_map[i].error;
-        }
-    }
-
-    return e;
-}
-
-icalerrorstate icalerror_supress(const char* error){
-
-    icalerrorenum e = icalerror_error_from_string(error);
-    icalerrorstate es;
-
-     if (e == ICAL_NO_ERROR){
-        return ICAL_ERROR_UNKNOWN;
-    }
-
-
-    es = icalerror_get_error_state(e);
-    icalerror_set_error_state(e,ICAL_ERROR_NONFATAL);
-
-    return es;
-}
-
-char* icalerror_perror()
-{
-    return icalerror_strerror(icalerrno);
-}
-
-void icalerror_restore(const char* error, icalerrorstate es){
-
-
-    icalerrorenum e = icalerror_error_from_string(error);
-
-    if (e != ICAL_NO_ERROR){
-        icalerror_set_error_state(e,es);
-    }
-
-}
-
-
-
-void icalerror_set_error_state( icalerrorenum error, 
-                               icalerrorstate state)
-{
-    int i;
-
-    for(i = ICAL_BADARG_ERROR; error_state_map[i].error!= ICAL_NO_ERROR;i++){
-       if(error_state_map[i].error == error){
-           error_state_map[i].state = state;   
-       }
-    }
-}
-
-icalerrorstate icalerror_get_error_state( icalerrorenum error)
-{
-    int i;
-
-    for(i = ICAL_BADARG_ERROR; error_state_map[i].error!= ICAL_NO_ERROR;i++){
-       if(error_state_map[i].error == error){
-           return error_state_map[i].state;    
-       }
-    }
-
-    return ICAL_ERROR_UNKNOWN; 
-}
-
-
-
-
-char* icalerror_strerror(icalerrorenum e) {
-
-    int i;
-
-    for (i=0; string_map[i].error != ICAL_UNKNOWN_ERROR; i++) {
-       if (string_map[i].error == e) {
-           return string_map[i].name;
-       }
-    }
-
-    return string_map[i].name; /* Return string for ICAL_UNKNOWN_ERROR*/
-    
-}
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalerror.h b/src/plugins/vcalendar/libical/libical/icalerror.h
deleted file mode 100644 (file)
index 1f521c6..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalerror.h
-  CREATOR: eric 09 May 1999
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalerror.h
-
-======================================================================*/
-
-
-#ifndef ICALERROR_H
-#define ICALERROR_H
-
-#include <assert.h>
-#include <stdio.h> /* For icalerror_warn() */
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-
-/* This routine is called before any error is triggered. It is called
-   by icalerror_set_errno, so it does not appear in all of the macros
-   below */
-void icalerror_stop_here(void);
-
-typedef enum icalerrorenum {
-    
-    ICAL_BADARG_ERROR,
-    ICAL_NEWFAILED_ERROR,
-    ICAL_ALLOCATION_ERROR,
-    ICAL_MALFORMEDDATA_ERROR, 
-    ICAL_PARSE_ERROR,
-    ICAL_INTERNAL_ERROR, /* Like assert --internal consist. prob */
-    ICAL_FILE_ERROR,
-    ICAL_USAGE_ERROR,
-    ICAL_UNIMPLEMENTED_ERROR,
-    ICAL_UNKNOWN_ERROR, /* Used for problems in input to icalerror_strerror()*/
-    ICAL_NO_ERROR
-
-} icalerrorenum;
-
-/* The libical error enumeration, like errno*/
-extern icalerrorenum icalerrno;
-
-/* If true, libicl aborts after a call to icalerror_set_error*/
-extern int icalerror_errors_are_fatal;
-
-/* Warning messages */
-
-#ifdef __GNUC__ca
-#define icalerror_warn(message) {fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);}
-#else /* __GNU_C__ */
-#define icalerror_warn(message) {fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);}
-#endif /* __GNU_C__ */
-
-
-void icalerror_clear_errno(void);
-void _icalerror_set_errno(icalerrorenum);
-
-/* Make an individual error fatal or non-fatal. */
-typedef enum icalerrorstate { 
-    ICAL_ERROR_FATAL,     /* Not fata */
-    ICAL_ERROR_NONFATAL,  /* Fatal */
-    ICAL_ERROR_DEFAULT,   /* Use the value of icalerror_errors_are_fatal*/
-    ICAL_ERROR_UNKNOWN    /* Asked state for an unknown error type */
-} icalerrorstate ;
-
-char* icalerror_strerror(icalerrorenum e);
-char* icalerror_perror();
-void icalerror_set_error_state( icalerrorenum error, icalerrorstate);
-icalerrorstate icalerror_get_error_state( icalerrorenum error);
-
-
-#define icalerror_set_errno(x) \
-icalerrno = x; \
-if(icalerror_get_error_state(x)==ICAL_ERROR_FATAL || \
-   (icalerror_get_error_state(x)==ICAL_ERROR_DEFAULT && \
-    icalerror_errors_are_fatal == 1 )){ \
-   icalerror_warn(icalerror_strerror(x)); \
-   assert(0); \
-} 
-
-
-#ifdef ICAL_ERRORS_ARE_FATAL
-#undef NDEBUG
-#endif
-
-#define icalerror_check_value_type(value,type);
-#define icalerror_check_property_type(value,type);
-#define icalerror_check_parameter_type(value,type);
-#define icalerror_check_component_type(value,type);
-
-/* Assert with a message */
-#ifdef ICAL_ERRORS_ARE_FATAL
-
-#ifdef __GNUC__
-#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s(), %s:%d: %s\n",__FUNCTION__,__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
-#else /*__GNUC__*/
-#define icalerror_assert(test,message) if(!(test)){fprintf(stderr,"%s:%d: %s\n",__FILE__,__LINE__,message);icalerror_stop_here(); abort();}
-#endif /*__GNUC__*/
-
-#else /* ICAL_ERRORS_ARE_FATAL */
-#define icalerror_assert(test,message) 
-#endif /* ICAL_ERRORS_ARE_FATAL */
-
-/* Check & abort if check fails */
-#define icalerror_check_arg(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); }
-
-/* Check & return void if check fails*/
-#define icalerror_check_arg_rv(test,arg) if(!(test)) {icalerror_set_errno(ICAL_BADARG_ERROR); return; }
-
-/* Check & return 0 if check fails*/
-#define icalerror_check_arg_rz(test,arg) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return 0;}
-
-/* Check & return an error if check fails*/
-#define icalerror_check_arg_re(test,arg,error) if(!(test)) { icalerror_stop_here(); assert(0); return error;}
-
-/* Check & return something*/
-#define icalerror_check_arg_rx(test,arg,x) if(!(test)) { icalerror_set_errno(ICAL_BADARG_ERROR); return x;}
-
-
-
-/* String interfaces to set an error to NONFATAL and restore it to its
-   original value */
-
-icalerrorstate icalerror_supress(const char* error);
-void icalerror_restore(const char* error, icalerrorstate es);
-
-
-#endif /* !ICALERROR_H */
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icallangbind.c b/src/plugins/vcalendar/libical/libical/icallangbind.c
deleted file mode 100644 (file)
index 866eb70..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icallangbind.c
-  CREATOR: eric 15 dec 2000
-  
-  DESCRIPTION:
-  
-  $Id$
-  $Locker$
-
-  (C) COPYRIGHT 1999 Eric Busboom 
-  http://www.softwarestudio.org
-  
-  This package is free software and is provided "as is" without
-  express or implied warranty.  It may be used, redistributed and/or
-  modified under the same terms as perl itself. ( Either the Artistic
-  License or the GPL. )
-
-  ======================================================================*/
-
-#include "icalcomponent.h"
-#include "icalproperty.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include <malloc.h>
-#include <string.h>
-
-int* icallangbind_new_array(int size){
-    int* p = (int*)malloc(size*sizeof(int));
-    return p; /* Caller handles failures */
-}
-
-void icallangbind_free_array(int* array){
-    free(array);
-}
-
-int icallangbind_access_array(int* array, int index) {
-    return array[index];
-}                    
-
-
-
-/* LIke icalcomponent_get_first_component, buut takes a string for the
-   kind and can iterate over X properties as if each X name was a
-   seperate kind */
-icalproperty* icallangbind_get_first_property(icalcomponent *c,
-                                              const char* prop)
-{
-    icalproperty_kind kind = icalproperty_string_to_kind(prop);
-    icalproperty *p;
-
-    if (kind == ICAL_NO_PROPERTY){
-       return 0;
-    }
-
-    if(kind == ICAL_X_PROPERTY){
-        for(p = icalcomponent_get_first_property(c,kind);
-            p !=0;
-            p = icalcomponent_get_next_property(c,kind)){
-            
-            if(strcmp(icalproperty_get_x_name(p),prop) == 0){
-                return p;
-            }                
-        }
-    } else {
-        p=icalcomponent_get_first_property(c,kind);
-
-        return p;
-    }
-       
-    return 0;
-
-}
-
-icalproperty* icallangbind_get_next_property(icalcomponent *c,
-                                              const char* prop)
-{
-    icalproperty_kind kind = icalenum_string_to_property_kind(prop);
-    icalproperty *p;
-
-    if (kind == ICAL_NO_PROPERTY){
-       return 0;
-    }
-
-    if(kind == ICAL_X_PROPERTY){
-        for(p = icalcomponent_get_next_property(c,kind);
-            p !=0;
-            p = icalcomponent_get_next_property(c,kind)){
-            
-            if(strcmp(icalproperty_get_x_name(p),prop) == 0){
-                return p;
-            }                
-        }
-    } else {
-        p=icalcomponent_get_next_property(c,kind);
-
-        return p;
-    }
-       
-    return 0;
-
-}
-
-
-icalcomponent* icallangbind_get_first_component(icalcomponent *c,
-                                              const char* comp)
-{
-    icalcomponent_kind kind = icalenum_string_to_component_kind(comp);
-
-    if (kind == ICAL_NO_COMPONENT){
-       return 0;
-    }
-    return icalcomponent_get_first_component(c,kind);
-}
-
-icalcomponent* icallangbind_get_next_component(icalcomponent *c,
-                                              const char* comp)
-{
-    icalcomponent_kind kind = icalenum_string_to_component_kind(comp);
-
-    if (kind == ICAL_NO_COMPONENT){
-       return 0;
-    }
-    return icalcomponent_get_next_component(c,kind);
-}
-
-
-#define APPENDS(x) icalmemory_append_string(&buf, &buf_ptr, &buf_size, x);
-
-#define APPENDC(x) icalmemory_append_char(&buf, &buf_ptr, &buf_size, x);
-
-const char* icallangbind_property_eval_string(icalproperty* prop, char* sep)
-{
-    char tmp[25];
-    size_t buf_size = 1024;
-    char* buf = icalmemory_new_buffer(buf_size);
-    char* buf_ptr = buf;
-    icalparameter *param;
-    
-    icalvalue* value;
-
-    if( prop == 0){
-       return 0;
-    }
-
-    APPENDS("{ ");
-
-    value = icalproperty_get_value(prop);
-
-    APPENDS(" 'name' ");
-    APPENDS(sep);
-    APPENDC('\'');
-    APPENDS(icalenum_property_kind_to_string(icalproperty_isa(prop)));
-    APPENDC('\'');
-
-    if(value){
-        APPENDS(", 'value_type' ");
-        APPENDS(sep);
-        APPENDC('\'');
-        APPENDS(icalenum_value_kind_to_string(icalvalue_isa(value)));
-        APPENDC('\'');
-    }
-
-    APPENDS(", 'pid' ");
-    APPENDS(sep);
-    APPENDC('\'');
-    snprintf(tmp,25,"%p",prop);
-    APPENDS(tmp);
-    APPENDC('\'');
-
-
-    if(value){
-        switch (icalvalue_isa(value)){
-       
-        case ICAL_ATTACH_VALUE:
-        case ICAL_BINARY_VALUE: 
-        case ICAL_NO_VALUE: {
-            icalerror_set_errno(ICAL_INTERNAL_ERROR);
-            break;
-        }
-
-        default: 
-        {
-            const char* str = icalvalue_as_ical_string(value);
-            char* copy = (char*) malloc(strlen(str)+1);
-            
-            const char *i;
-            char *j;
-
-            if(copy ==0){
-                icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-                break; 
-            }
-            /* Remove any newlines */
-                
-            for(j=copy, i = str; *i != 0; j++,i++){
-                if(*i=='\n'){
-                    i++;
-                }   
-                *j = *i;
-            }
-                
-            *j = 0;
-                
-            APPENDS(", 'value'");
-            APPENDS(sep);
-            APPENDC('\'');
-            APPENDS(copy);
-            APPENDC('\'');
-            
-            free(copy);
-            break;
-
-        }
-        }
-    }
-
-    /* Add Parameters */
-
-    for(param = icalproperty_get_first_parameter(prop,ICAL_ANY_PARAMETER);
-        param != 0;
-        param = icalproperty_get_next_parameter(prop,ICAL_ANY_PARAMETER)){
-        
-        const char* str = icalparameter_as_ical_string(param);
-        char *copy = icalmemory_tmp_copy(str);
-        char *v;
-
-        if(copy == 0){
-            icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-            continue;
-        }
-
-        v = strchr(copy,'=');
-
-
-        if(v == 0){
-            continue;
-        }
-
-        *v = 0;
-
-        v++;
-
-        APPENDS(", ");
-        APPENDC('\'');
-        APPENDS(copy);
-        APPENDC('\'');
-        APPENDS(sep);
-        APPENDC('\'');
-        APPENDS(v);        
-        APPENDC('\'');
-        
-    }
-
-
-    APPENDC('}');
-
-    icalmemory_add_tmp_buffer(buf);
-    return buf;
-
-}
-
-#include "fcntl.h"
-int icallangbind_string_to_open_flag(const char* str)
-{
-    if (strcmp(str,"r") == 0) {return O_RDONLY;}
-    else if (strcmp(str,"r+") == 0) {return O_RDWR;}
-    else if (strcmp(str,"w") == 0) {return O_WRONLY;}
-    else if (strcmp(str,"a") == 0) {return O_WRONLY|O_APPEND;}
-    else return -1;
-}
-
diff --git a/src/plugins/vcalendar/libical/libical/icallangbind.h b/src/plugins/vcalendar/libical/libical/icallangbind.h
deleted file mode 100644 (file)
index 2ed5003..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icallangbind.h
-  CREATOR: eric 25 jan 2001
-  
-  DESCRIPTION:
-  
-  $Id$
-  $Locker$
-
-  (C) COPYRIGHT 1999 Eric Busboom 
-  http://www.softwarestudio.org
-  
-  This package is free software and is provided "as is" without
-  express or implied warranty.  It may be used, redistributed and/or
-  modified under the same terms as perl itself. ( Either the Artistic
-  License or the GPL. )
-
-  ======================================================================*/
-
-#ifndef __ICALLANGBIND_H__
-#define __ICALLANGBIND_H__
-
-int* icallangbind_new_array(int size);
-void icallangbind_free_array(int* array);
-int icallangbind_access_array(int* array, int index);
-icalproperty* icallangbind_get_property(icalcomponent *c, int n, const char* prop);
-const char* icallangbind_get_property_val(icalproperty* p);
-const char* icallangbind_get_parameter(icalproperty *p, const char* parameter);
-icalcomponent* icallangbind_get_component(icalcomponent *c, const char* comp);
-
-icalproperty* icallangbind_get_first_property(icalcomponent *c,
-                                              const char* prop);
-
-icalproperty* icallangbind_get_next_property(icalcomponent *c,
-                                              const char* prop);
-
-icalcomponent* icallangbind_get_first_component(icalcomponent *c,
-                                              const char* comp);
-
-icalcomponent* icallangbind_get_next_component(icalcomponent *c,
-                                              const char* comp);
-
-
-const char* icallangbind_property_eval_string(icalproperty* prop, char* sep);
-
-
-int icallangbind_string_to_open_flag(const char* str);
-#endif /*__ICALLANGBIND_H__*/
diff --git a/src/plugins/vcalendar/libical/libical/icallexer.l b/src/plugins/vcalendar/libical/libical/icallexer.l
deleted file mode 100644 (file)
index 7d18eb0..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-%{
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icallexer.l
-  CREATOR: eric 10 June 1999
-  
-  DESCRIPTION:
-  
-  $Id$
-  $Locker$
-
-  (C) COPYRIGHT 1999 Eric Busboom 
-  http://www.softwarestudio.org
-
-  The contents of this file are subject to the Mozilla Public License
-  Version 1.0 (the "License"); you may not use this file except in
-  compliance with the License. You may obtain a copy of the License at
-  http://www.mozilla.org/MPL/
-  Software distributed under the License is distributed on an "AS IS"
-  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-  the License for the specific language governing rights and
-  limitations under the License.
-
-  The original author is Eric Busboom
-  The original code is icalitip.y
-
-
-
-  ======================================================================*/
-#include "icalparser.h"
-#include "icalenums.h"
-#include "icalmemory.h"
-#include "assert.h"
-#include "icalyacc.h"
-
-#include <string.h> /* For strdup() */
-
-int icalparser_flex_input(char* buf, int max_size);
-void icalparser_clear_flex_input(void);
-
-
-#define ICAL_MAX_STR_CONST 1024
-
-#undef YY_INPUT
-#define YY_INPUT(b,r,ms) ( r= icalparser_flex_input(b,ms))
-
-#undef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) ical_yyerror(msg)
-
-icalvalue_kind value_kind=ICAL_NO_VALUE;
-void set_parser_value_state(icalvalue_kind kind);
-extern int yydebug; 
-
-void ical_yyerror(char *s);
-
-void init_str_buf(void);
-
-int last_state;
-
-char *str_buf;
-char *str_buf_p;
-size_t buf_sz; /* = ICAL_MAX_STR_CONST;*/
-
-%}
-
-crlf           \x0D?\x0A
-space          [ ]
-qsafechar      [^\x00-\x1F\"]
-safechar       [^\x00-\x1F\"\:\;\,]
-tsafechar      [\x20-\x21\x23-\x2B\x2D-\x39\x3C-\x5B\x5D-\x7E]
-valuechar      [^\x00-\x08\x10-\x1F]
-xname          X-[a-zA-Z0-9\-]+
-xname2          [a-zA-Z0-9\-\ ]
-paramtext      {safechar}+
-value          {valuechar}+
-quotedstring   \"{qsafechar}+\"
-digit          [0-9]
-
-%array /* Make yytext an array. Slow, but handy. HACK */
-
-%option caseless
-
-%s quoted_string
-%s binary_value boolean_value uri_value time_value duration_value number_value period_value recur_value text_value utcoffset_value
-%s enum_param_value string_param_value stringlist_param_value keyword line_start component seperator parameter end_of_value paramtext
-
-
-
-%%
-
-%{
-%}
-
-
-
-<time_value>{
-{digit}+                { ical_yylval.v_string =icalmemory_tmp_copy(yytext) ;
-                           return DIGITS; }
-T                       { return TIME_CHAR; }
-Z                       { return UTC_CHAR; }
-[\/\+\-PWHMSD]          { return yytext[0]; }
-{crlf}                   { return EOL;}
-
-}
-
-<utcoffset_value>{
-{crlf}                   { return EOL;}
-\-|\+                   { return yytext[0]; }
-{digit}{digit}          { ical_yylval.v_int=atoi(yytext); return INTNUMBER; }
-
-}
-
-<enum_param_value>{
-.                       { return CHARACTER; }
-{crlf}                   { return EOL;}
-
-}
-
-<seperator>{
-,       { BEGIN(last_state); return COMMA; } 
-}
-
-
-%% 
-
-int yywrap()
-{
-     return 1;
-}
-
-
-void set_parser_value_state(icalvalue_kind kind)
-{
-
-    switch (kind){
-
-       case ICAL_UTCOFFSET_VALUE:
-           {BEGIN(utcoffset_value);break;}
-
-       case ICAL_DATETIMEPERIOD_VALUE:
-       case ICAL_DURATION_VALUE:
-       case ICAL_PERIOD_VALUE:
-           {BEGIN(time_value);break;}
-
-       default:
-       {
-          assert(1==0);
-       }
-    }
-}
-
-void init_str_buf(void)
-{
-   str_buf = icalmemory_tmp_buffer(ICAL_MAX_STR_CONST);
-   str_buf_p = str_buf;
-   buf_sz = ICAL_MAX_STR_CONST;
-
-
-}
-
diff --git a/src/plugins/vcalendar/libical/libical/icalmemory.c b/src/plugins/vcalendar/libical/libical/icalmemory.c
deleted file mode 100644 (file)
index 379605a..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalmemory.c
-  CREATOR: eric 30 June 1999
-  
-  $Id$
-  $Locker$
-    
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is icalmemory.h
-
- ======================================================================*/
-
-/* libical often passes strings back to the caller. To make these
- * interfaces simple, I did not want the caller to have to pass in a
- * memory buffer, but having libical pass out newly allocated memory
- * makes it difficult to de-allocate the memory.
- * 
- * The ring buffer in this scheme makes it possible for libical to pass
- * out references to memory which the caller does not own, and be able
- * to de-allocate the memory later. The ring allows libical to have
- * several buffers active simultaneously, which is handy when creating
- * string representations of components. */
-
-#define ICALMEMORY_C
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-
-#include "icalmemory.h"
-#include "icalerror.h"
-
-#include <stdio.h> /* for printf (debugging) */
-#include <stdlib.h> /* for malloc, realloc */
-#include <string.h> /* for memset(), strdup */
-
-#define BUFFER_RING_SIZE 250
-#define MIN_BUFFER_SIZE 200
-
-void icalmemory_free_tmp_buffer (void* buf);
-
-
-/* HACK. Not threadsafe */
-void* buffer_ring[BUFFER_RING_SIZE];
-int buffer_pos = -1;
-int initialized = 0;
-
-/* Add an existing buffer to the buffer ring */
-void  icalmemory_add_tmp_buffer(void* buf)
-{
-    /* I don't think I need this -- I think static arrays are
-       initialized to 0 as a standard part of C, but I am not sure. */
-    if (initialized == 0){
-       int i;
-       for(i=0; i<BUFFER_RING_SIZE; i++){
-           buffer_ring[i]  = 0;
-       }
-       initialized = 1;
-    }
-
-    /* Wrap around the ring */
-    if(++buffer_pos == BUFFER_RING_SIZE){
-       buffer_pos = 0;
-    }
-
-    /* Free buffers as their slots are overwritten */
-    if ( buffer_ring[buffer_pos] != 0){
-       free( buffer_ring[buffer_pos]);
-       buffer_ring[buffer_pos] = 0;
-    }
-
-    /* Assign the buffer to a slot */
-    buffer_ring[buffer_pos] = buf; 
-}
-
-/* Create a new temporary buffer on the ring. Libical owns these and
-   wil deallocate them. */
-void*
-icalmemory_tmp_buffer (size_t size)
-{
-    char *buf;
-
-    if (size < MIN_BUFFER_SIZE){
-       size = MIN_BUFFER_SIZE;
-    }
-    
-    buf = (void*)malloc(size);
-
-    if( buf == 0){
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-
-    memset(buf,0,size); 
-
-    icalmemory_add_tmp_buffer(buf);
-
-    return buf;
-}
-
-void icalmemory_free_ring()
-{
-       
-   int i;
-   for(i=0; i<BUFFER_RING_SIZE; i++){
-    if ( buffer_ring[i] != 0){
-       free( buffer_ring[i]);
-    }
-    buffer_ring[i]  = 0;
-   }
-
-   initialized = 1;
-
-}
-
-
-
-/* Like strdup, but the buffer is on the ring. */
-char*
-icalmemory_tmp_copy(const char* str)
-{
-    char* b = icalmemory_tmp_buffer(strlen(str)+1);
-
-    strcpy(b,str);
-
-    return b;
-}
-    
-
-char* icalmemory_strdup(const char *s)
-{
-    return strdup(s);
-}
-
-void
-icalmemory_free_tmp_buffer (void* buf)
-{
-   if(buf == 0)
-   {
-       return;
-   }
-
-   free(buf);
-}
-
-
-/* These buffer routines create memory the old fashioned way -- so the
-   caller will have to delocate the new memory */
-
-void* icalmemory_new_buffer(size_t size)
-{
-    void *b = malloc(size);
-
-    if( b == 0){
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-
-    memset(b,0,size); 
-
-    return b;
-}
-
-void* icalmemory_resize_buffer(void* buf, size_t size)
-{
-    void *b = realloc(buf, size);
-
-    if( b == 0){
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-
-   return b;
-}
-
-void icalmemory_free_buffer(void* buf)
-{
-    free(buf);
-}
-
-void 
-icalmemory_append_string(char** buf, char** pos, size_t* buf_size, 
-                             const char* string)
-{
-    char *new_buf;
-    char *new_pos;
-
-    size_t data_length, final_length, string_length;
-
-#ifndef ICAL_NO_INTERNAL_DEBUG
-    icalerror_check_arg_rv( (buf!=0),"buf");
-    icalerror_check_arg_rv( (*buf!=0),"*buf");
-    icalerror_check_arg_rv( (pos!=0),"pos");
-    icalerror_check_arg_rv( (*pos!=0),"*pos");
-    icalerror_check_arg_rv( (buf_size!=0),"buf_size");
-    icalerror_check_arg_rv( (*buf_size!=0),"*buf_size");
-    icalerror_check_arg_rv( (string!=0),"string");
-#endif 
-
-    string_length = strlen(string);
-    data_length = (size_t)*pos - (size_t)*buf;    
-    final_length = data_length + string_length; 
-
-    if ( final_length >= (size_t) *buf_size) {
-
-       
-       *buf_size  = (*buf_size) * 2  + final_length;
-
-       new_buf = realloc(*buf,*buf_size);
-
-       new_pos = (void*)((size_t)new_buf + data_length);
-       
-       *pos = new_pos;
-       *buf = new_buf;
-    }
-    
-    strcpy(*pos, string);
-
-    *pos += string_length;
-}
-
-
-void 
-icalmemory_append_char(char** buf, char** pos, size_t* buf_size, 
-                             char ch)
-{
-    char *new_buf;
-    char *new_pos;
-
-    size_t data_length, final_length;
-
-#ifndef ICAL_NO_INTERNAL_DEBUG
-    icalerror_check_arg_rv( (buf!=0),"buf");
-    icalerror_check_arg_rv( (*buf!=0),"*buf");
-    icalerror_check_arg_rv( (pos!=0),"pos");
-    icalerror_check_arg_rv( (*pos!=0),"*pos");
-    icalerror_check_arg_rv( (buf_size!=0),"buf_size");
-    icalerror_check_arg_rv( (*buf_size!=0),"*buf_size");
-#endif
-
-    data_length = (size_t)*pos - (size_t)*buf;
-
-    final_length = data_length + 2; 
-
-    if ( final_length > (size_t) *buf_size ) {
-
-       
-       *buf_size  = (*buf_size) * 2  + final_length +1;
-
-       new_buf = realloc(*buf,*buf_size);
-
-       new_pos = (void*)((size_t)new_buf + data_length);
-       
-       *pos = new_pos;
-       *buf = new_buf;
-    }
-
-    **pos = ch;
-    *pos += 1;
-    **pos = 0;
-}
diff --git a/src/plugins/vcalendar/libical/libical/icalmemory.h b/src/plugins/vcalendar/libical/libical/icalmemory.h
deleted file mode 100644 (file)
index 52364e2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalmemory.h
- CREATOR: eric 30 June 1999
-
-
- $Id$
- $Locker$
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Initial Developer of the Original Code is Eric Busboom
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-======================================================================*/
-
-#ifndef ICALMEMORY_H
-#define ICALMEMORY_H
-
-#include <sys/types.h> /* for size_t */
-
-
-/* Tmp buffers are managed by ical. References can be returned to the
-   caller, although the caller will not own the memory. */
-
-void* icalmemory_tmp_buffer(size_t size);
-char* icalmemory_tmp_copy(const char* str);
-
-/* Add an externally allocated buffer to the ring. */
-void  icalmemory_add_tmp_buffer(void*);
-
-
-/* Free all memory used in the ring */
-void icalmemory_free_ring(void);
-
-/* Non-tmp buffers must be freed. These are mostly wrappers around
- * malloc, etc, but are used so the caller can change the memory
- * allocators in a future version of the library */
-
-void* icalmemory_new_buffer(size_t size);
-void* icalmemory_resize_buffer(void* buf, size_t size);
-void icalmemory_free_buffer(void* buf);
-
-/* icalmemory_append_string will copy the string 'string' to the
-   buffer 'buf' starting at position 'pos', reallocing 'buf' if it is
-   too small. 'buf_size' is the size of 'buf' and will be changed if
-   'buf' is reallocated. 'pos' will point to the last byte of the new
-   string in 'buf', usually a '\0' */
-
-/* THESE ROUTINES CAN NOT BE USED ON TMP BUFFERS. Only use them on
-   normally allocated memory, or on buffers created from
-   icalmemory_new_buffer, never with buffers created by
-   icalmemory_tmp_buffer. If icalmemory_append_string has to resize a
-   buffer on the ring, the ring will loose track of it an you will
-   have memory problems. */
-
-void icalmemory_append_string(char** buf, char** pos, size_t* buf_size, 
-                             const char* string);
-
-/*  icalmemory_append_char is similar, but is appends a character instead of a string */
-void icalmemory_append_char(char** buf, char** pos, size_t* buf_size, 
-                             char ch);
-
-/* A wrapper around strdup. Partly to trap calls to strdup, partly
-   because in -ansi, gcc on Red Hat claims that strudup is undeclared */
-char* icalmemory_strdup(const char *s);
-
-#endif /* !ICALMEMORY_H */
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalmime.c b/src/plugins/vcalendar/libical/libical/icalmime.c
deleted file mode 100644 (file)
index f3ba2a2..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-/* -*- Mode: C -*-*/
-/*======================================================================
- FILE: icalmime.c
- CREATOR: eric 26 July 2000
-
-
- $Id$
- $Locker$
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-#include "icalmime.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "sspm.h"
-#include "stdlib.h"
-#include <string.h> /* For strdup */
-#include <stdio.h> /* for snprintf*/
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-
-
-/* These *_part routines are called by the MIME parser via the
-   local_action_map */
-
-struct text_part
-{
-       char* buf;
-       char* buf_pos;
-       size_t buf_size;
-};
-
-void* icalmime_text_new_part()
-{
-
-#define BUF_SIZE 2048
-
-    struct text_part* impl;
-
-    if ( ( impl = (struct text_part*)
-          malloc(sizeof(struct text_part))) == 0) {
-       return 0;
-    }
-
-    impl->buf =  icalmemory_new_buffer(BUF_SIZE);
-    impl->buf_pos = impl->buf;
-    impl->buf_size = BUF_SIZE;
-
-    return impl;    
-}
-void icalmime_text_add_line(void *part, 
-                           struct sspm_header *header, 
-                           char* line, size_t size)
-{
-    struct text_part* impl = (struct text_part*) part;
-
-    icalmemory_append_string(&(impl->buf),&(impl->buf_pos),
-                            &(impl->buf_size),line);
-    
-}
-
-void* icalmime_textcalendar_end_part(void* part)
-{
-
-    struct text_part* impl = (struct text_part*) part;
-    icalcomponent *c = icalparser_parse_string(impl->buf);
-
-    icalmemory_free_buffer(impl->buf);
-    free(impl);
-
-    return c;
-
-}
-
-void* icalmime_text_end_part(void* part)
-{
-    struct text_part* impl = ( struct text_part*) part;
-    char *buf;
-    
-    icalmemory_add_tmp_buffer(impl->buf);
-    buf = impl->buf;
-
-    free(impl);
-
-    return buf;
-}
-
-void icalmime_text_free_part(void *part)
-{
-    part = part;
-}
-
-
-/* Ignore Attachments for now */
-
-void* icalmime_attachment_new_part()
-{
-    return 0;
-}
-void icalmime_attachment_add_line(void *part, struct sspm_header *header, 
-                                 char* line, size_t size)
-{
-    part = part;
-    header = header;
-    line = line;
-    size = size;
-}
-
-void* icalmime_attachment_end_part(void* part)
-{
-    return 0;
-}
-
-void icalmime_attachment_free_part(void *part)
-{
-}
-
-
-
-
-struct sspm_action_map icalmime_local_action_map[] = 
-{
-    {SSPM_TEXT_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_text_new_part,icalmime_text_add_line,icalmime_textcalendar_end_part,icalmime_text_free_part},
-    {SSPM_TEXT_MAJOR_TYPE,SSPM_ANY_MINOR_TYPE,icalmime_text_new_part,icalmime_text_add_line,icalmime_text_end_part,icalmime_text_free_part},
-    {SSPM_TEXT_MAJOR_TYPE,SSPM_PLAIN_MINOR_TYPE,icalmime_text_new_part,icalmime_text_add_line,icalmime_text_end_part,icalmime_text_free_part},
-    {SSPM_APPLICATION_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-    {SSPM_IMAGE_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-    {SSPM_AUDIO_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-    {SSPM_IMAGE_MAJOR_TYPE,SSPM_CALENDAR_MINOR_TYPE,icalmime_attachment_new_part,icalmime_attachment_add_line,icalmime_attachment_end_part,icalmime_attachment_free_part},
-   {SSPM_UNKNOWN_MAJOR_TYPE,SSPM_UNKNOWN_MINOR_TYPE,0,0,0,0}
-};
-
-#define NUM_PARTS 100 /* HACK. Hard Limit */
-
-
-
-struct sspm_part* icalmime_make_part(icalcomponent* comp)
-{
-    comp = comp;
-    return 0;
-}
-
-char* icalmime_as_mime_string(char* icalcomponent);
-
-icalcomponent* icalmime_parse(char* (*get_string)(char *s, size_t size, 
-                                                      void *d),
-                               void *data)
-{
-    struct sspm_part *parts;
-    int i, last_level=0;
-    icalcomponent *root = NULL, *parent = NULL, *comp = NULL, *last = NULL;
-    size_t alloc_len = NUM_PARTS * sizeof(struct sspm_part);
-
-    if ( (parts = (struct sspm_part *)
-         malloc(alloc_len))==0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-
-    memset(parts, 0, alloc_len);
-
-    sspm_parse_mime(parts, 
-                   NUM_PARTS, /* Max parts */
-                   icalmime_local_action_map, /* Actions */ 
-                   get_string,
-                   data, /* data for get_string*/
-                   0 /* First header */);
-
-
-
-    for(i = 0; i <NUM_PARTS && parts[i].header.major != SSPM_NO_MAJOR_TYPE ; i++){
-
-#define TMPSZ 1024
-       char mimetype[TMPSZ];                          
-       char* major = sspm_major_type_string(parts[i].header.major);
-       char* minor = sspm_minor_type_string(parts[i].header.minor);
-
-       if(parts[i].header.minor == SSPM_UNKNOWN_MINOR_TYPE ){
-           assert(parts[i].header.minor_text !=0);
-           minor = parts[i].header.minor_text;
-       }
-       
-       sprintf(mimetype,"%s/%s",major,minor);
-
-       comp = icalcomponent_new(ICAL_XLICMIMEPART_COMPONENT);
-
-       if(comp == 0){
-           /* HACK Handle Error */
-           assert(0);
-       }
-
-       if(parts[i].header.error!=SSPM_NO_ERROR){
-           char *str = NULL;
-           char* temp[256];
-
-           if(parts[i].header.error==SSPM_UNEXPECTED_BOUNDARY_ERROR){
-               str = "Got an unexpected boundary, possibly due to a MIME header for a MULTIPART part that is missing the Content-Type line";
-           }
-
-           if(parts[i].header.error==SSPM_WRONG_BOUNDARY_ERROR){
-               str = "Got the wrong boundary for the opening of a MULTIPART part.";
-           }
-
-           if(parts[i].header.error==SSPM_NO_BOUNDARY_ERROR){
-               str = "Got a multipart header that did not specify a boundary";
-           }
-
-           if(parts[i].header.error==SSPM_NO_HEADER_ERROR){
-               str = "Did not get a header for the part. Is there a blank\
-line between the header and the previous boundary\?";
-
-           }
-
-           if(parts[i].header.error_text != 0){
-               snprintf((char*)temp,256,
-                        "%s: %s",str,parts[i].header.error_text);
-           } else {
-               strncpy((char*)temp,str, 255);
-           }
-
-           icalcomponent_add_property
-               (comp,
-                icalproperty_vanew_xlicerror(
-                    (char*)temp,
-                    icalparameter_new_xlicerrortype(
-                        ICAL_XLICERRORTYPE_MIMEPARSEERROR),
-                    0));  
-       }
-
-       if(parts[i].header.major != SSPM_NO_MAJOR_TYPE &&
-          parts[i].header.major != SSPM_UNKNOWN_MAJOR_TYPE){
-
-           icalcomponent_add_property(comp,
-               icalproperty_new_xlicmimecontenttype((char*)
-                               icalmemory_strdup(mimetype)));
-
-       }
-
-       if (parts[i].header.encoding != SSPM_NO_ENCODING){
-
-           icalcomponent_add_property(comp,
-              icalproperty_new_xlicmimeencoding(
-                  sspm_encoding_string(parts[i].header.encoding)));
-       }
-
-       if (parts[i].header.filename != 0){
-           icalcomponent_add_property(comp,
-              icalproperty_new_xlicmimefilename(parts[i].header.filename));
-       }
-
-       if (parts[i].header.content_id != 0){
-           icalcomponent_add_property(comp,
-              icalproperty_new_xlicmimecid(parts[i].header.content_id));
-       }
-
-       if (parts[i].header.charset != 0){
-           icalcomponent_add_property(comp,
-              icalproperty_new_xlicmimecharset(parts[i].header.charset));
-       }
-
-       /* Add iCal components as children of the component */
-       if(parts[i].header.major == SSPM_TEXT_MAJOR_TYPE &&
-          parts[i].header.minor == SSPM_CALENDAR_MINOR_TYPE &&
-          parts[i].data != 0){
-
-           icalcomponent_add_component(comp,
-                                       (icalcomponent*)parts[i].data);
-           parts[i].data = 0;
-
-       } else  if(parts[i].header.major == SSPM_TEXT_MAJOR_TYPE &&
-          parts[i].header.minor != SSPM_CALENDAR_MINOR_TYPE &&
-          parts[i].data != 0){
-
-           /* Add other text components as "DESCRIPTION" properties */
-
-           icalcomponent_add_property(comp,
-               icalproperty_new_description(
-                  (char*)icalmemory_strdup((char*)parts[i].data)));
-
-           parts[i].data = 0;
-       }
-       
-
-       if(root!= 0 && parts[i].level == 0){
-           /* We've already assigned the root, but there is another
-               part at the root level. This is probably a parse
-               error*/
-           icalcomponent_free(comp);
-           continue;
-       }
-
-       if(parts[i].level == last_level && last_level != 0){
-           icalerror_assert(parent != NULL, "No parent for adding component");
-
-           icalcomponent_add_component(parent,comp);
-
-       } else if (parts[i].level == last_level && last_level == 0 &&
-           root == 0) {
-
-           root = comp;
-           parent = comp;
-
-       } else if (parts[i].level > last_level){            
-
-           parent = last;
-           icalcomponent_add_component(parent,comp);
-
-           last_level = parts[i].level;
-
-       } else if (parts[i].level < last_level){
-            icalerror_assert(parent != NULL, "No parent");
-           parent = icalcomponent_get_parent(parent);
-           icalcomponent_add_component(parent,comp);
-
-           last_level = parts[i].level;
-       } else { 
-           assert(0);
-       }
-
-       last = comp;
-       last_level = parts[i].level;
-       assert(parts[i].data == 0);
-    }
-
-    sspm_free_parts(parts,NUM_PARTS);
-    free(parts);
-
-    return root;
-}
-
-
-
-int icalmime_test(char* (*get_string)(char *s, size_t size, void *d),
-                 void *data)
-{
-    char *out;
-    struct sspm_part *parts;
-    int i;
-    size_t alloc_len = NUM_PARTS * sizeof(struct sspm_part);
-
-    if ( (parts = (struct sspm_part *)
-         malloc(alloc_len))==0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-
-    memset(parts,0,alloc_len);
-
-    sspm_parse_mime(parts, 
-                   NUM_PARTS, /* Max parts */
-                   icalmime_local_action_map, /* Actions */ 
-                   get_string,
-                   data, /* data for get_string*/
-                   0 /* First header */);
-
-   for(i = 0; i <NUM_PARTS && parts[i].header.major != SSPM_NO_MAJOR_TYPE ; 
-       i++){
-       if(parts[i].header.minor == SSPM_CALENDAR_MINOR_TYPE){
-          parts[i].data = icalmemory_strdup(
-              icalcomponent_as_ical_string((icalcomponent*)parts[i].data));
-       }
-   }
-
-    sspm_write_mime(parts,NUM_PARTS,&out,"To: bob@bob.org");
-
-    printf("%s\n",out);
-
-    free(out);
-
-    return 0;
-
-}
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalmime.h b/src/plugins/vcalendar/libical/libical/icalmime.h
deleted file mode 100644 (file)
index b222888..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalmime.h
- CREATOR: eric 26 July 2000
-
-
- $Id$
- $Locker$
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-======================================================================*/
-
-#ifndef ICALMIME_H
-#define ICALMIME_H
-
-#include "icalcomponent.h"
-#include "icalparser.h"
-
-icalcomponent* icalmime_parse( char* (*line_gen_func)(char *s, size_t size, 
-                                                      void *d),
-                               void *data);
-
-/* The inverse of icalmime_parse, not implemented yet. Use sspm.h directly.  */
-char* icalmime_as_mime_string(char* component);
-
-
-
-#endif /* !ICALMIME_H */
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalparameter.c b/src/plugins/vcalendar/libical/libical/icalparameter.c
deleted file mode 100644 (file)
index c7d6702..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalderivedparameters.{c,h}
-  CREATOR: eric 09 May 1999
-  
-  $Id$
-  $Locker$
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalderivedparameters.{c,h}
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
- ======================================================================*/
-/*#line 29 "icalparameter.c.in"*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "icalparameter.h"
-#include "icalproperty.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparameterimpl.h"
-
-#include <stdlib.h> /* for malloc() */
-#include <errno.h>
-#include <string.h> /* for memset() */
-
-/* In icalderivedparameter */
-icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind,const  char* val);
-
-
-struct icalparameter_impl* icalparameter_new_impl(icalparameter_kind kind)
-{
-    struct icalparameter_impl* v;
-
-    if ( ( v = (struct icalparameter_impl*)
-          malloc(sizeof(struct icalparameter_impl))) == 0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-    
-    strcpy(v->id,"para");
-
-    v->kind = kind;
-    v->size = 0;
-    v->string = 0;
-    v->x_name = 0;
-    v->parent = 0;
-    v->data = 0;
-
-    return v;
-}
-
-icalparameter*
-icalparameter_new (icalparameter_kind kind)
-{
-    struct icalparameter_impl* v = icalparameter_new_impl(kind);
-
-    return (icalparameter*) v;
-
-}
-
-void
-icalparameter_free (icalparameter* parameter)
-{
-    struct icalparameter_impl * impl;
-
-    impl = (struct icalparameter_impl*)parameter;
-
-/*  HACK. This always triggers, even when parameter is non-zero
-    icalerror_check_arg_rv((parameter==0),"parameter");*/
-
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (impl->parent ==0),"Tried to free a parameter that is still attached to a component. ");
-    
-#else
-    if(impl->parent !=0){
-       return;
-    }
-#endif
-
-    
-    if (impl->string != 0){
-       free ((void*)impl->string);
-    }
-    
-    if (impl->x_name != 0){
-       free ((void*)impl->x_name);
-    }
-    
-    memset(impl,0,sizeof(*impl));
-
-    impl->parent = 0;
-    impl->id[0] = 'X';
-    free(impl);
-}
-
-
-
-icalparameter* 
-icalparameter_new_clone(icalparameter* param)
-{
-    struct icalparameter_impl *old;
-    struct icalparameter_impl *new;
-
-    old = (struct icalparameter_impl *)param;
-    new = icalparameter_new_impl(old->kind);
-
-    icalerror_check_arg_rz((param!=0),"param");
-
-    if (new == 0){
-       return 0;
-    }
-
-    memcpy(new,old,sizeof(struct icalparameter_impl));
-
-    if (old->string != 0){
-       new->string = icalmemory_strdup(old->string);
-       if (new->string == 0){
-           icalparameter_free(new);
-           return 0;
-       }
-    }
-
-    if (old->x_name != 0){
-       new->x_name = icalmemory_strdup(old->x_name);
-       if (new->x_name == 0){
-           icalparameter_free(new);
-           return 0;
-       }
-    }
-
-    return new;
-}
-
-icalparameter* icalparameter_new_from_string(const char *str)
-{
-    char* eq;
-    char* cpy;
-    icalparameter_kind kind;
-    icalparameter *param;
-
-    icalerror_check_arg_rz(str != 0,"str");
-
-    cpy = icalmemory_strdup(str);
-
-    if (cpy == 0){
-        icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-        return 0;
-    }
-
-    eq = strchr(cpy,'=');
-
-    if(eq == 0){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(cpy);
-        return 0;
-    }
-
-    *eq = '\0';
-
-    eq++;
-
-    kind = icalparameter_string_to_kind(cpy);
-
-    if(kind == ICAL_NO_PARAMETER){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(cpy);
-        return 0;
-    }
-
-    param = icalparameter_new_from_value_string(kind,eq);
-
-    if(kind == ICAL_X_PARAMETER){
-        icalparameter_set_xname(param,cpy);
-    }
-
-    free(cpy);
-
-    return param;
-    
-}
-
-char*
-icalparameter_as_ical_string (icalparameter* parameter)
-{
-    struct icalparameter_impl* impl;
-    size_t buf_size = 1024;
-    char* buf; 
-    char* buf_ptr;
-    char *out_buf;
-    const char *kind_string;
-
-    icalerror_check_arg_rz( (parameter!=0), "parameter");
-
-    /* Create new buffer that we can append names, parameters and a
-       value to, and reallocate as needed. Later, this buffer will be
-       copied to a icalmemory_tmp_buffer, which is managed internally
-       by libical, so it can be given to the caller without fear of
-       the caller forgetting to free it */
-
-    buf = icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-    impl = (struct icalparameter_impl*)parameter;
-
-    if(impl->kind == ICAL_X_PARAMETER) {
-
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, 
-                                icalparameter_get_xname(impl));
-
-    } else {
-
-       kind_string = icalparameter_kind_to_string(impl->kind);
-       
-       if (impl->kind == ICAL_NO_PARAMETER || 
-           impl->kind == ICAL_ANY_PARAMETER || 
-           kind_string == 0)
-       {
-           icalerror_set_errno(ICAL_BADARG_ERROR);
-            icalmemory_free_buffer(buf);
-           return 0;
-       }
-       
-       
-       /* Put the parameter name into the string */
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-
-    }
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "=");
-
-    if(impl->string !=0){
-        icalmemory_append_string(&buf, &buf_ptr, &buf_size, impl->string); 
-    } else if (impl->data != 0){
-        const char* str = icalparameter_enum_to_string(impl->data);
-        icalmemory_append_string(&buf, &buf_ptr, &buf_size, str); 
-    } else {
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        icalmemory_free_buffer(buf);
-        return 0;
-    }
-
-    /* Now, copy the buffer to a tmp_buffer, which is safe to give to
-       the caller without worring about de-allocating it. */
-    
-    out_buf = icalmemory_tmp_buffer(strlen(buf) + 1);
-    strcpy(out_buf, buf);
-
-    icalmemory_free_buffer(buf);
-
-    return out_buf;
-
-}
-
-
-int
-icalparameter_is_valid (icalparameter* parameter);
-
-
-icalparameter_kind
-icalparameter_isa (icalparameter* parameter)
-{
-    if(parameter == 0){
-       return ICAL_NO_PARAMETER;
-    }
-
-    return ((struct icalparameter_impl *)parameter)->kind;
-}
-
-
-int
-icalparameter_isa_parameter (void* parameter)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl *)parameter;
-
-    if (parameter == 0){
-       return 0;
-    }
-
-    if (strcmp(impl->id,"para") == 0) {
-       return 1;
-    } else {
-       return 0;
-    }
-}
-
-
-void
-icalparameter_set_xname (icalparameter* param, const char* v)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl*)param;
-    icalerror_check_arg_rv( (param!=0),"param");
-    icalerror_check_arg_rv( (v!=0),"v");
-
-    if (impl->x_name != 0){
-       free((void*)impl->x_name);
-    }
-
-    impl->x_name = icalmemory_strdup(v);
-
-    if (impl->x_name == 0){
-       errno = ENOMEM;
-    }
-
-}
-
-const char*
-icalparameter_get_xname (icalparameter* param)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl*)param;
-    icalerror_check_arg_rz( (param!=0),"param");
-
-    return impl->x_name;
-}
-
-void
-icalparameter_set_xvalue (icalparameter* param, const char* v)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl*)param;
-
-    icalerror_check_arg_rv( (param!=0),"param");
-    icalerror_check_arg_rv( (v!=0),"v");
-
-    if (impl->string != 0){
-       free((void*)impl->string);
-    }
-
-    impl->string = icalmemory_strdup(v);
-
-    if (impl->string == 0){
-       errno = ENOMEM;
-    }
-
-}
-
-const char*
-icalparameter_get_xvalue (icalparameter* param)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl*)param;
-
-    icalerror_check_arg_rz( (param!=0),"param");
-
-    return impl->string;
-
-}
-
-void icalparameter_set_parent(icalparameter* param,
-                            icalproperty* property)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl*)param;
-
-    icalerror_check_arg_rv( (param!=0),"param");
-
-    impl->parent = property;
-}
-
-icalproperty* icalparameter_get_parent(icalparameter* param)
-{
-    struct icalparameter_impl *impl = (struct icalparameter_impl*)param;
-
-    icalerror_check_arg_rz( (param!=0),"param");
-
-    return impl->parent;
-}
-
-
-/* Everything below this line is machine generated. Do not edit. */
-/* ALTREP */
diff --git a/src/plugins/vcalendar/libical/libical/icalparameter.h b/src/plugins/vcalendar/libical/libical/icalparameter.h
deleted file mode 100644 (file)
index 3f3b59f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalparam.h
-  CREATOR: eric 20 March 1999
-
-
-  $Id$
-  $Locker$
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparam.h
-
-  ======================================================================*/
-
-#ifndef ICALPARAM_H
-#define ICALPARAM_H
-
-#include "icalderivedparameter.h"
-
-/* Declared in icalderivedparameter.h */
-/*typedef void icalparameter;*/
-
-icalparameter* icalparameter_new(icalparameter_kind kind);
-icalparameter* icalparameter_new_clone(icalparameter* p);
-
-/* Create from string of form "PARAMNAME=VALUE" */
-icalparameter* icalparameter_new_from_string(const char* value);
-
-/* Create from just the value, the part after the "=" */
-icalparameter* icalparameter_new_from_value_string(icalparameter_kind kind, const char* value);
-
-void icalparameter_free(icalparameter* parameter);
-
-char* icalparameter_as_ical_string(icalparameter* parameter);
-
-int icalparameter_is_valid(icalparameter* parameter);
-
-icalparameter_kind icalparameter_isa(icalparameter* parameter);
-
-int icalparameter_isa_parameter(void* param);
-
-/* Acess the name of an X parameer */
-void icalparameter_set_xname (icalparameter* param, const char* v);
-const char* icalparameter_get_xname(icalparameter* param);
-void icalparameter_set_xvalue (icalparameter* param, const char* v);
-const char* icalparameter_get_xvalue(icalparameter* param);
-
-/* Convert enumerations */
-
-const char* icalparameter_kind_to_string(icalparameter_kind kind);
-icalparameter_kind icalparameter_string_to_kind(const char* string);
-
-
-
-#endif 
diff --git a/src/plugins/vcalendar/libical/libical/icalparameterimpl.h b/src/plugins/vcalendar/libical/libical/icalparameterimpl.h
deleted file mode 100644 (file)
index 2d0fdd6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalparameterimpl.h
-  CREATOR: eric 09 May 1999
-  
-  $Id$
-  $Locker$
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalderivedparameters.{c,h}
-
-  Contributions from:
-     Graham Davison (g.m.davison@computer.org)
-
- ======================================================================*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef ICALPARAMETER_IMPL
-#define ICALPARAMETER_IMPL
-
-#include "icalparameter.h"
-#include "icalproperty.h"
-
-struct icalparameter_impl
-{
-       icalparameter_kind kind;
-       char id[5];
-       int size;
-       const char* string;
-       const char* x_name;
-       icalproperty* parent;
-
-       int data;
-};
-
-
-#endif /*ICALPARAMETER_IMPL*/
diff --git a/src/plugins/vcalendar/libical/libical/icalparser.c b/src/plugins/vcalendar/libical/libical/icalparser.c
deleted file mode 100644 (file)
index bfcccdf..0000000
+++ /dev/null
@@ -1,1107 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalparser.c
-  CREATOR: eric 04 August 1999
-  
-  $Id$
-  $Locker$
-    
- The contents of this file are subject to the Mozilla Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- the License for the specific language governing rights and
- limitations under the License.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The Initial Developer of the Original Code is Eric Busboom
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-
-#include "icalparser.h"
-#include "pvl.h"
-#include "icalmemory.h"
-#include "icalerror.h"
-#include "icalvalue.h"
-#include "icalderivedparameter.h"
-#include "icalparameter.h"
-#include "icalproperty.h"
-#include "icalcomponent.h"
-
-#include <string.h> /* For strncpy & size_t */
-#include <stdio.h> /* For FILE and fgets and sprintf */
-#include <stdlib.h> /* for free */
-
-
-extern icalvalue* icalparser_yy_value;
-void set_parser_value_state(icalvalue_kind kind);
-int ical_yyparse(void);
-
-char* icalparser_get_next_char(char c, char *str);
-char* icalparser_get_next_parameter(char* line,char** end);
-char* icalparser_get_next_value(char* line, char **end, icalvalue_kind kind);
-char* icalparser_get_prop_name(char* line, char** end);
-char* icalparser_get_param_name(char* line, char **end);
-
-#define TMP_BUF_SIZE 80
-
-struct icalparser_impl 
-{
-    int buffer_full; /* flag indicates that temp is smaller that 
-                        data being read into it*/
-    int continuation_line; /* last line read was a continuation line */
-    size_t tmp_buf_size; 
-    char temp[TMP_BUF_SIZE];
-    icalcomponent *root_component;
-    int version; 
-    int level;
-    int lineno;
-    icalparser_state state;
-    pvl_list components;
-    
-    void *line_gen_data;
-    
-};
-
-
-icalparser* icalparser_new(void)
-{
-    struct icalparser_impl* impl = 0;
-    if ( ( impl = (struct icalparser_impl*)
-          malloc(sizeof(struct icalparser_impl))) == 0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-    
-    impl->root_component = 0;
-    impl->components  = pvl_newlist();  
-    impl->level = 0;
-    impl->state = ICALPARSER_SUCCESS;
-
-    impl->tmp_buf_size = TMP_BUF_SIZE;
-    impl->buffer_full = 0;
-    impl->lineno = 0;
-    impl->continuation_line = 0;
-
-    memset(impl->temp,0, TMP_BUF_SIZE);
-
-    return (icalparser*)impl;
-}
-
-
-void icalparser_free(icalparser* parser)
-{
-    struct icalparser_impl* impl = (struct icalparser_impl*)parser;
-    icalcomponent *c;
-
-    if (impl->root_component != 0){
-       icalcomponent_free(impl->root_component);
-    }
-
-    while( (c=pvl_pop(impl->components)) != 0){
-       icalcomponent_free(c);
-    }
-    
-    pvl_free(impl->components);
-    
-    free(impl);
-}
-
-void icalparser_set_gen_data(icalparser* parser, void* data)
-{
-    struct icalparser_impl* impl = (struct icalparser_impl*)parser;
-
-    impl->line_gen_data  = data;
-}
-
-
-icalvalue* icalvalue_new_From_string_with_error(icalvalue_kind kind, 
-                                                char* str, 
-                                                icalproperty **error);
-
-
-
-char* icalparser_get_next_char(char c, char *str)
-{
-    int quote_mode = 0;
-    char* p;
-    
-
-    for(p=str; *p!=0; p++){
-       
-       if ( quote_mode == 0 && *p=='"' && *(p-1) != '\\' ){
-           quote_mode =1;
-           continue;
-       }
-
-       if ( quote_mode == 1 && *p=='"' && *(p-1) != '\\' ){
-           quote_mode =0;
-           continue;
-       }
-
-       if (quote_mode == 0 &&  *p== c  && *(p-1) != '\\' ){
-           return p;
-       }
-
-    }
-
-    return 0;
-}
-
-/* make a new tmp buffer out of a substring */
-char* make_segment(char* start, char* end)
-{
-    char *buf;
-    size_t size = (size_t)end - (size_t)start;
-    
-    buf = icalmemory_tmp_buffer(size+1);
-    
-
-    strncpy(buf,start,size);
-    *(buf+size) = 0;
-    
-    return buf;
-    
-}
-
-const char* input_buffer;
-const char* input_buffer_p;
-#define min(a,b) ((a) < (b) ? (a) : (b))   
-
-int icalparser_flex_input(char* buf, int max_size)
-{
-    int n = min(max_size,strlen(input_buffer_p));
-
-    if (n > 0){
-       memcpy(buf, input_buffer_p, n);
-       input_buffer_p += n;
-       return n;
-    } else {
-       return 0;
-    }
-}
-
-void icalparser_clear_flex_input(void)
-{
-    input_buffer_p = input_buffer+strlen(input_buffer);
-}
-
-/* Call the flex/bison parser to parse a complex value */
-
-icalvalue*  icalparser_parse_value(icalvalue_kind kind,
-                                   const char* str, icalproperty** error)
-{
-    int r;
-    input_buffer_p = input_buffer = str;
-
-    set_parser_value_state(kind);
-    icalparser_yy_value = 0;
-
-    r = ical_yyparse();
-
-    /* Error. Parse failed */
-    if( icalparser_yy_value == 0 || r != 0){
-
-       if(icalparser_yy_value !=0){
-           icalvalue_free(icalparser_yy_value);
-           icalparser_yy_value = 0;
-       }
-
-       return 0;
-    }
-
-    if (error != 0){
-       *error = 0;
-    }
-
-    return icalparser_yy_value;
-}
-
-char* icalparser_get_prop_name(char* line, char** end)
-{
-    char* p;
-    char* v;
-    char *str;
-
-    p = icalparser_get_next_char(';',line); 
-    v = icalparser_get_next_char(':',line); 
-    if (p== 0 && v == 0) {
-       return 0;
-    }
-
-    /* There is no ';' or, it is after the ';' that marks the beginning of
-       the value */
-    if (v!=0 && ( p == 0 || p > v)){
-       str = make_segment(line,v);
-       *end = v+1;
-    } else {
-       str = make_segment(line,p);
-       *end = p+1;
-    }
-
-    return str;
-}
-
-char* icalparser_get_param_name(char* line, char **end)
-{
-    
-    char* next; 
-    char *str;
-
-    next = icalparser_get_next_char('=',line);
-
-    if (next == 0) {
-       return 0;
-    }
-
-    str = make_segment(line,next);
-    *end = next+1;
-    return str;
-   
-}
-
-char* icalparser_get_next_paramvalue(char* line, char **end)
-{
-    
-    char* next; 
-    char *str;
-
-    next = icalparser_get_next_char(',',line);
-
-    if (next == 0){
-       next = (char*)(size_t)line+(size_t)strlen(line);\
-    }
-
-    if (next == line){
-       return 0;
-    } else {
-       str = make_segment(line,next);
-       *end = next+1;
-       return str;
-    }
-   
-}
-
-/* A property may have multiple values, if the values are seperated by
-   commas in the content line. This routine will look for the next
-   comma after line and will set the next place to start searching in
-   end. */
-
-char* icalparser_get_next_value(char* line, char **end, icalvalue_kind kind)
-{
-    
-    char* next;
-    char *p;
-    char *str;
-    size_t length = strlen(line);
-
-    p = line;
-    while(1){
-
-       next = icalparser_get_next_char(',',p);
-
-       /* Unforunately, RFC2445 says that for the RECUR value, COMMA
-          can both seperate digits in a list, and it can seperate
-          multiple recurrence specifications. This is not a friendly
-          part of the spec. This weirdness tries to
-          distinguish the two uses. it is probably a HACK*/
-      
-       if( kind == ICAL_RECUR_VALUE ) {
-           if ( next != 0 &&
-                (*end+length) > next+5 &&
-                strncmp(next,"FREQ",4) == 0
-               ) {
-               /* The COMMA was followed by 'FREQ', is it a real seperator*/
-               /* Fall through */
-           } else if (next != 0){
-               /* Not real, get the next COMMA */
-               p = next+1;
-               next = 0;
-               continue;
-           } 
-       }
-
-       /* If the comma is preceeded by a '\', then it is a literal and
-          not a value seperator*/  
-      
-       if ( (next!=0 && *(next-1) == '\\') ||
-            (next!=0 && *(next-3) == '\\')
-           ) 
-           /*second clause for '/' is on prev line. HACK may be out of bounds */
-       {
-           p = next+1;
-       } else {
-           break;
-       }
-
-    }
-
-    if (next == 0){
-       next = (char*)(size_t)line+length;
-       *end = next;
-    } else {
-       *end = next+1;
-    }
-
-    if (next == line){
-       return 0;
-    } 
-       
-
-    str = make_segment(line,next);
-    return str;
-   
-}
-
-char* icalparser_get_next_parameter(char* line,char** end)
-{
-    char *next;
-    char *v;
-    char *str;
-
-    v = icalparser_get_next_char(':',line); 
-    next = icalparser_get_next_char(';', line);
-    
-    /* There is no ';' or, it is after the ':' that marks the beginning of
-       the value */
-
-    if (next == 0 || next > v) {
-       next = icalparser_get_next_char(':', line);
-    }
-
-    if (next != 0) {
-       str = make_segment(line,next);
-       *end = next+1;
-       return str;
-    } else {
-       *end = line;
-       return 0;
-    }
-}
-
-/* Get a single property line, from the property name through the
-   final new line, and include any continuation lines */
-
-char* icalparser_get_line(icalparser *parser,
-                          char* (*line_gen_func)(char *s, size_t size, void *d))
-{
-    char *line;
-    char *line_p;
-    struct icalparser_impl* impl = (struct icalparser_impl*)parser;
-    size_t buf_size = impl->tmp_buf_size;
-
-    
-    line_p = line = icalmemory_new_buffer(buf_size);
-    line[0] = '\0';
-   
-    /* Read lines by calling line_gen_func and putting the data into
-       impl->temp. If the line is a continuation line ( begins with a
-       space after a newline ) then append the data onto line and read
-       again. Otherwise, exit the loop. */
-
-    while(1) {
-
-        /* The first part of the loop deals with the temp buffer,
-           which was read on he last pass through the loop. The
-           routine is split like this because it has to read lone line
-           ahead to determine if a line is a continuation line. */
-
-
-       /* The tmp buffer is not clear, so transfer the data in it to the
-          output. This may be left over from a previous call */
-       if (impl->temp[0] != '\0' ) {
-
-           /* If the last position in the temp buffer is occupied,
-               mark the buffer as full. The means we will do another
-               read later, because the line is not finished */
-           if (impl->temp[impl->tmp_buf_size-1] == 0 &&
-               impl->temp[impl->tmp_buf_size-2] != '\n'&& 
-                impl->temp[impl->tmp_buf_size-2] != 0 ){
-               impl->buffer_full = 1;
-           } else {
-               impl->buffer_full = 0;
-           }
-
-           /* Copy the temp to the output and clear the temp buffer. */
-            if(impl->continuation_line==1){
-                /* back up the pointer to erase the continuation characters */
-                impl->continuation_line = 0;
-                line_p--;
-                
-                if ( *(line_p-1) == '\r'){
-                    line_p--;
-                }
-                
-                /* copy one space up to eliminate the leading space*/
-                icalmemory_append_string(&line,&line_p,&buf_size,
-                                         impl->temp+1);
-
-            } else {
-                icalmemory_append_string(&line,&line_p,&buf_size,impl->temp);
-            }
-
-            impl->temp[0] = '\0' ;
-       }
-       
-       impl->temp[impl->tmp_buf_size-1] = 1; /* Mark end of buffer */
-
-        /****** Here is where the routine gets string data ******************/
-       if ((*line_gen_func)(impl->temp,impl->tmp_buf_size,impl->line_gen_data)
-           ==0){/* Get more data */
-
-           /* If the first position is clear, it means we didn't get
-               any more data from the last call to line_ge_func*/
-           if (impl->temp[0] == '\0'){
-
-               if(line[0] != '\0'){
-                   /* There is data in the output, so fall trhough and process it*/
-                   break;
-               } else {
-                   /* No data in output; return and signal that there
-                       is no more input*/
-                   free(line);
-                   return 0;
-               }
-           }
-       }
-       
-       /* If the output line ends in a '\n' and the temp buffer
-          begins with a ' ', then the buffer holds a continuation
-          line, so keep reading.  */
-
-       if  ( line_p > line+1 && *(line_p-1) == '\n' && (impl->temp[0] == ' ' || impl->temp[0] == '\t')) {
-
-            impl->continuation_line = 1;
-
-       } else if ( impl->buffer_full == 1 ) {
-           
-           /* The buffer was filled on the last read, so read again */
-
-       } else {
-
-           /* Looks like the end of this content line, so break */
-           break;
-       }
-
-       
-    }
-
-    /* Erase the final newline and/or carriage return*/
-    if ( line_p > line+1 && *(line_p-1) == '\n') {     
-       *(line_p-1) = '\0';
-       if ( *(line_p-2) == '\r'){
-           *(line_p-2) = '\0';
-       }
-
-    } else {
-       *(line_p) = '\0';
-    }
-
-    return line;
-
-}
-
-void insert_error(icalcomponent* comp, char* text, 
-                 char* message, icalparameter_xlicerrortype type)
-{
-    char temp[1024];
-    
-    if (text == 0){
-       snprintf(temp,1024,"%s:",message);
-    } else {
-       snprintf(temp,1024,"%s: %s",message,text);
-    }  
-    
-    icalcomponent_add_property
-       (comp,
-        icalproperty_vanew_xlicerror(
-            temp,
-            icalparameter_new_xlicerrortype(type),
-            0));   
-}
-
-int line_is_blank(char* line){
-    int i=0;
-
-    for(i=0; *(line+i)!=0; i++){
-       char c = *(line+i);
-
-       if(c != ' ' && c != '\n' && c != '\t'){
-           return 0;
-       }
-    }
-    
-    return 1;
-}
-
-icalcomponent* icalparser_parse(icalparser *parser,
-                               char* (*line_gen_func)(char *s, size_t size, 
-                                                      void* d))
-{
-
-    char* line; 
-    icalcomponent *c=0; 
-    icalcomponent *root=0;
-    icalerrorstate es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
-
-    icalerror_check_arg_rz((parser !=0),"parser");
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_NONFATAL);
-
-    do{
-           line = icalparser_get_line(parser, line_gen_func);
-
-       if ((c = icalparser_add_line(parser,line)) != 0){
-
-           if(icalcomponent_get_parent(c) !=0){
-               /* This is bad news... assert? */
-           }       
-           
-           assert(impl->root_component == 0);
-           assert(pvl_count(impl->components) ==0);
-
-           if (root == 0){
-               /* Just one component */
-               root = c;
-           } else if(icalcomponent_isa(root) != ICAL_XROOT_COMPONENT) {
-               /*Got a second component, so move the two components under
-                 an XROOT container */
-               icalcomponent *tempc = icalcomponent_new(ICAL_XROOT_COMPONENT);
-               icalcomponent_add_component(tempc, root);
-               icalcomponent_add_component(tempc, c);
-               root = tempc;
-           } else if(icalcomponent_isa(root) == ICAL_XROOT_COMPONENT) {
-               /* Already have an XROOT container, so add the component
-                  to it*/
-               icalcomponent_add_component(root, c);
-               
-           } else {
-               /* Badness */
-               assert(0);
-           }
-
-           c = 0;
-
-        }
-       if(line != 0){
-           free(line);
-       }
-    } while ( line != 0);
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-
-    return root;
-
-}
-
-
-icalcomponent* icalparser_add_line(icalparser* parser,
-                                       char* line)
-{ 
-    char *str;
-    char *end;
-    int vcount = 0;
-    icalproperty *prop;
-    icalproperty_kind prop_kind;
-    icalvalue *value;
-    icalvalue_kind value_kind = ICAL_NO_VALUE;
-
-
-    struct icalparser_impl *impl = (struct icalparser_impl*)parser;
-    icalerror_check_arg_rz((parser != 0),"parser");
-
-
-    if (line == 0)
-    {
-       impl->state = ICALPARSER_ERROR;
-       return 0;
-    }
-
-    if(line_is_blank(line) == 1){
-       return 0;
-    }
-
-    /* Begin by getting the property name at the start of the line. The
-       property name may end up being "BEGIN" or "END" in which case it
-       is not really a property, but the marker for the start or end of
-       a component */
-
-    end = 0;
-    str = icalparser_get_prop_name(line, &end);
-
-    if (str == 0 || strlen(str) == 0 ){
-       /* Could not get a property name */
-       icalcomponent *tail = pvl_data(pvl_tail(impl->components));
-
-       if (tail){
-           insert_error(tail,line,
-                        "Got a data line, but could not find a property name or component begin tag",
-                        ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-       }
-       tail = 0;
-       impl->state = ICALPARSER_ERROR;
-       return 0; 
-    }
-
-    /**********************************************************************
-     * Handle begin and end of components
-     **********************************************************************/                                                                  
-    /* If the property name is BEGIN or END, we are actually
-       starting or ending a new component */
-
-    if(strcmp(str,"BEGIN") == 0){
-       icalcomponent *c;
-        icalcomponent_kind comp_kind;
-
-       impl->level++;
-       str = icalparser_get_next_value(end,&end, value_kind);
-           
-
-        comp_kind = icalenum_string_to_component_kind(str);
-
-        if (comp_kind == ICAL_NO_COMPONENT){
-           c = icalcomponent_new(ICAL_XLICINVALID_COMPONENT);
-           insert_error(c,str,"Parse error in component name",
-                        ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-        }
-
-       c  =  icalcomponent_new(comp_kind);
-
-       if (c == 0){
-           c = icalcomponent_new(ICAL_XLICINVALID_COMPONENT);
-           insert_error(c,str,"Parse error in component name",
-                        ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-       }
-           
-       pvl_push(impl->components,c);
-
-       impl->state = ICALPARSER_BEGIN_COMP;
-       return 0;
-
-    } else if (strcmp(str,"END") == 0 ) {
-       icalcomponent* tail;
-
-       impl->level--;
-       str = icalparser_get_next_value(end,&end, value_kind);
-
-       /* Pop last component off of list and add it to the second-to-last*/
-       impl->root_component = pvl_pop(impl->components);
-
-       tail = pvl_data(pvl_tail(impl->components));
-
-       if(tail != 0){
-           icalcomponent_add_component(tail,impl->root_component);
-       } 
-
-       tail = 0;
-
-       /* Return the component if we are back to the 0th level */
-       if (impl->level == 0){
-           icalcomponent *rtrn; 
-
-           if(pvl_count(impl->components) != 0){
-           /* There are still components on the stack -- this means
-               that one of them did not have a proper "END" */
-               pvl_push(impl->components,impl->root_component);
-               icalparser_clean(parser); /* may reset impl->root_component*/
-           }
-
-           assert(pvl_count(impl->components) == 0);
-
-           impl->state = ICALPARSER_SUCCESS;
-           rtrn = impl->root_component;
-           impl->root_component = 0;
-           return rtrn;
-
-       } else {
-           impl->state = ICALPARSER_END_COMP;
-           return 0;
-       }
-    }
-
-
-    /* There is no point in continuing if we have not seen a
-       component yet */
-
-    if(pvl_data(pvl_tail(impl->components)) == 0){
-       impl->state = ICALPARSER_ERROR;
-       return 0;
-    }
-
-
-    /**********************************************************************
-     * Handle property names
-     **********************************************************************/
-                                                                      
-    /* At this point, the property name really is a property name,
-       (Not a component name) so make a new property and add it to
-       the component */
-
-    
-    prop_kind = icalproperty_string_to_kind(str);
-
-    prop = icalproperty_new(prop_kind);
-
-    if (prop != 0){
-       icalcomponent *tail = pvl_data(pvl_tail(impl->components));
-
-        if(prop_kind==ICAL_X_PROPERTY){
-            icalproperty_set_x_name(prop,str);
-        }
-
-       icalcomponent_add_property(tail, prop);
-
-       /* Set the value kind for the default for this type of
-          property. This may be re-set by a VALUE parameter */
-       value_kind = icalproperty_kind_to_value_kind(icalproperty_isa(prop));
-
-    } else {
-       icalcomponent* tail = pvl_data(pvl_tail(impl->components));
-
-       insert_error(tail,str,"Parse error in property name",
-                    ICAL_XLICERRORTYPE_PROPERTYPARSEERROR);
-           
-       tail = 0;
-       impl->state = ICALPARSER_ERROR;
-       return 0;
-    }
-
-    /**********************************************************************
-     * Handle parameter values
-     **********************************************************************/                                                                  
-
-    /* Now, add any parameters to the last property */
-
-    while(1) {
-
-       if (*(end-1) == ':'){
-           /* if the last seperator was a ":" and the value is a
-              URL, icalparser_get_next_parameter will find the
-              ':' in the URL, so better break now. */
-           break;
-       }
-
-       str = icalparser_get_next_parameter(end,&end);
-
-       if (str != 0){
-           char* name;
-           char* pvalue;
-        
-           icalparameter *param = 0;
-           icalparameter_kind kind;
-           icalcomponent *tail = pvl_data(pvl_tail(impl->components));
-
-           name = icalparser_get_param_name(str,&pvalue);
-
-           if (name == 0){
-               /* 'tail' defined above */
-               insert_error(tail, str, "Cant parse parameter name",
-                            ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR);
-               tail = 0;
-               break;
-           }
-
-           kind = icalparameter_string_to_kind(name);
-
-           if(kind == ICAL_X_PARAMETER){
-               param = icalparameter_new(ICAL_X_PARAMETER);
-               
-               if(param != 0){
-                   icalparameter_set_xname(param,name);
-                   icalparameter_set_xvalue(param,pvalue);
-               }
-
-
-           } else if (kind != ICAL_NO_PARAMETER){
-               param = icalparameter_new_from_value_string(kind,pvalue);
-           } else {
-               /* Error. Failed to parse the parameter*/
-               /* 'tail' defined above */
-               insert_error(tail, str, "Cant parse parameter name",
-                            ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR);
-               tail = 0;
-               impl->state = ICALPARSER_ERROR;
-               continue;
-           }
-
-           if (param == 0){
-               /* 'tail' defined above */
-               insert_error(tail,str,"Cant parse parameter value",
-                            ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR);
-                   
-               tail = 0;
-               impl->state = ICALPARSER_ERROR;
-               continue;
-           }
-
-           /* If it is a VALUE parameter, set the kind of value*/
-           if (icalparameter_isa(param)==ICAL_VALUE_PARAMETER){
-
-               value_kind = (icalvalue_kind)
-                    icalparameter_value_to_value_kind(
-                                icalparameter_get_value(param)
-                                );
-
-               if (value_kind == ICAL_NO_VALUE){
-
-                   /* Ooops, could not parse the value of the
-                      parameter ( it was not one of the defined
-                      values ), so reset the value_kind */
-                       
-                   insert_error(
-                       tail, str, 
-                       "Got a VALUE parameter with an unknown type",
-                       ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR);
-                   icalparameter_free(param);
-                       
-                   value_kind = 
-                       icalproperty_kind_to_value_kind(
-                           icalproperty_isa(prop));
-                       
-                   icalparameter_free(param);
-                   tail = 0;
-                   impl->state = ICALPARSER_ERROR;
-                   return 0;
-               } 
-           }
-
-           /* Everything is OK, so add the parameter */
-           icalproperty_add_parameter(prop,param);
-           tail = 0;
-
-       } else { /* if ( str != 0)  */
-           /* If we did not get a param string, go on to looking
-              for a value */
-           break;
-       } /* if ( str != 0)  */
-
-    } /* while(1) */       
-       
-    /**********************************************************************
-     * Handle values
-     **********************************************************************/                                                                  
-
-    /* Look for values. If there are ',' characters in the values,
-       then there are multiple values, so clone the current
-       parameter and add one part of the value to each clone */
-
-    vcount=0;
-    while(1) {
-       str = icalparser_get_next_value(end,&end, value_kind);
-
-       if (str != 0){
-               
-           if (vcount > 0){
-               /* Actually, only clone after the second value */
-               icalproperty* clone = icalproperty_new_clone(prop);
-               icalcomponent* tail = pvl_data(pvl_tail(impl->components));
-                   
-               icalcomponent_add_property(tail, clone);
-               prop = clone;               
-               tail = 0;
-           }
-               
-           value = icalvalue_new_from_string(value_kind, str);
-               
-           /* Don't add properties without value */
-           if (value == 0){
-               char temp[200]; /* HACK */
-
-               icalproperty_kind prop_kind = icalproperty_isa(prop);
-               icalcomponent* tail = pvl_data(pvl_tail(impl->components));
-
-               sprintf(temp,"Cant parse as %s value in %s property. Removing entire property",
-                       icalvalue_kind_to_string(value_kind),
-                       icalproperty_kind_to_string(prop_kind));
-
-               insert_error(tail, str, temp,
-                            ICAL_XLICERRORTYPE_VALUEPARSEERROR);
-
-               /* Remove the troublesome property */
-               icalcomponent_remove_property(tail,prop);
-               icalproperty_free(prop);
-               prop = 0;
-               tail = 0;
-               impl->state = ICALPARSER_ERROR;
-               return 0;
-                   
-           } else {
-               vcount++;
-               icalproperty_set_value(prop, value);
-           }
-
-
-       } else {
-           if (vcount == 0){
-               char temp[200]; /* HACK */
-               
-               icalproperty_kind prop_kind = icalproperty_isa(prop);
-               icalcomponent *tail = pvl_data(pvl_tail(impl->components));
-               
-               sprintf(temp,"No value for %s property. Removing entire property",
-                       icalproperty_kind_to_string(prop_kind));
-
-               insert_error(tail, str, temp,
-                            ICAL_XLICERRORTYPE_VALUEPARSEERROR);
-
-               /* Remove the troublesome property */
-               icalcomponent_remove_property(tail,prop);
-               icalproperty_free(prop);
-               prop = 0;
-               tail = 0;
-               impl->state = ICALPARSER_ERROR;
-               return 0;
-           } else {
-
-               break;
-           }
-       }
-    }
-       
-    /****************************************************************
-     * End of component parsing. 
-     *****************************************************************/
-
-    if (pvl_data(pvl_tail(impl->components)) == 0 &&
-       impl->level == 0){
-       /* HACK. Does this clause ever get executed? */
-       impl->state = ICALPARSER_SUCCESS;
-       assert(0);
-       return impl->root_component;
-    } else {
-       impl->state = ICALPARSER_IN_PROGRESS;
-       return 0;
-    }
-
-}
-
-icalparser_state icalparser_get_state(icalparser* parser)
-{
-    struct icalparser_impl* impl = (struct icalparser_impl*) parser;
-    return impl->state;
-
-}
-
-icalcomponent* icalparser_clean(icalparser* parser)
-{
-    struct icalparser_impl* impl = (struct icalparser_impl*) parser;
-    icalcomponent *tail; 
-
-    icalerror_check_arg_rz((parser != 0 ),"parser");
-
-    /* We won't get a clean exit if some components did not have an
-       "END" tag. Clear off any component that may be left in the list */
-    
-    while((tail=pvl_data(pvl_tail(impl->components))) != 0){
-
-       insert_error(tail," ",
-                    "Missing END tag for this component. Closing component at end of input.",
-                    ICAL_XLICERRORTYPE_COMPONENTPARSEERROR);
-       
-
-       impl->root_component = pvl_pop(impl->components);
-       tail=pvl_data(pvl_tail(impl->components));
-
-       if(tail != 0){
-           if(icalcomponent_get_parent(impl->root_component)!=0){
-               icalerror_warn("icalparser_clean is trying to attach a component for the second time");
-           } else {
-               icalcomponent_add_component(tail,impl->root_component);
-           }
-       }
-           
-    }
-
-    return impl->root_component;
-
-}
-
-struct slg_data {
-       const char* pos;
-       const char* str;
-};
-
-char* string_line_generator(char *out, size_t buf_size, void *d)
-{
-    char *n;
-    size_t size;
-    struct slg_data* data = (struct slg_data*)d;
-
-    if(data->pos==0){
-       data->pos=data->str;
-    }
-
-    /* If the pointer is at the end of the string, we are done */
-    if (*(data->pos)==0){
-       return 0;
-    }
-
-    n = strchr(data->pos,'\n');
-    
-    if (n == 0){
-       size = strlen(data->pos);
-    } else {
-       n++; /* include newline in output */
-       size = (n-data->pos);   
-    }
-
-    if (size > buf_size-1){
-       size = buf_size-1;
-    }
-    
-
-    strncpy(out,data->pos,size);
-    
-    *(out+size) = '\0';
-    
-    data->pos += size;
-
-    return out;    
-}
-
-icalcomponent* icalparser_parse_string(const char* str)
-{
-    icalcomponent *c;
-    struct slg_data d;
-    icalparser *p;
-
-    icalerrorstate es = icalerror_get_error_state(ICAL_PARSE_ERROR);
-
-    d.pos = 0;
-    d.str = str;
-
-    p = icalparser_new();
-    icalparser_set_gen_data(p,&d);
-
-    icalerror_set_error_state(ICAL_PARSE_ERROR,ICAL_ERROR_NONFATAL);
-
-    c = icalparser_parse(p,string_line_generator);
-
-    icalerror_set_error_state(ICAL_PARSE_ERROR,es);
-
-    icalparser_free(p);
-
-    return c;
-
-}
diff --git a/src/plugins/vcalendar/libical/libical/icalparser.h b/src/plugins/vcalendar/libical/libical/icalparser.h
deleted file mode 100644 (file)
index 5e1c88f..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalparser.h
-  CREATOR: eric 20 April 1999
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparser.h
-
-======================================================================*/
-
-
-#ifndef ICALPARSER_H
-#define ICALPARSER_H
-
-#include "icalenums.h"
-#include "icaltypes.h"
-#include"icalcomponent.h"
-
-#include <stdio.h> /* For FILE* */
-
-typedef void* icalparser;
-
-
-/***********************************************************************
- * Line-oriented parsing. 
- * 
- * Create a new parser via icalparse_new_parser, then add ines one at
- * a time with icalparse_add_line(). icalparser_add_line() will return
- * non-zero when it has finished with a component.
- ***********************************************************************/
-
-typedef enum icalparser_state {
-    ICALPARSER_ERROR,
-    ICALPARSER_SUCCESS,
-    ICALPARSER_BEGIN_COMP,
-    ICALPARSER_END_COMP,
-    ICALPARSER_IN_PROGRESS
-} icalparser_state;
-
-icalparser* icalparser_new(void);
-icalcomponent* icalparser_add_line(icalparser* parser, char* str );
-icalcomponent* icalparser_clean(icalparser* parser);
-icalparser_state icalparser_get_state(icalparser* parser);
-void icalparser_free(icalparser* parser);
-
-
-/***********************************************************************
- * Message oriented parsing.  icalparser_parse takes a string that
- * holds the text ( in RFC 2445 format ) and returns a pointer to an
- * icalcomponent. The caller owns the memory. line_gen_func is a
- * pointer to a function that returns one content line per invocation
- **********************************************************************/
-
-icalcomponent* icalparser_parse(icalparser *parser,
-                               char* (*line_gen_func)(char *s, size_t size, void *d));
-
-/* Set the data that icalparser_parse will give to the line_gen_func
-   as the parameter 'd'*/
-void icalparser_set_gen_data(icalparser* parser, void* data);
-
-
-icalcomponent* icalparser_parse_string(const char* str);
-
-
-/***********************************************************************
- * Parser support functions
- ***********************************************************************/
-
-/* Use the flex/bison parser to turn a string into a value type */
-icalvalue*  icalparser_parse_value(icalvalue_kind kind, 
-                                  const char* str, icalcomponent** errors);
-
-/* Given a line generator function, return a single iCal content line.*/
-char* icalparser_get_line(icalparser* parser, char* (*line_gen_func)(char *s, size_t size, void *d));
-
-char* string_line_generator(char *out, size_t buf_size, void *d);
-
-#endif /* !ICALPARSE_H */
diff --git a/src/plugins/vcalendar/libical/libical/icalperiod.c b/src/plugins/vcalendar/libical/libical/icalperiod.c
deleted file mode 100644 (file)
index d7aaa90..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalperiod.c
-  CREATOR: eric 02 June 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalperiod.h"
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef ICAL_NO_LIBICAL
-#define icalerror_set_errno(x)
-#define  icalerror_check_arg_rv(x,y)
-#define  icalerror_check_arg_re(x,y,z)
-#else
-#include "icalerror.h"
-#include "icalmemory.h"
-#endif
-
-
-
-
-struct icalperiodtype icalperiodtype_from_string (const char* str)
-{
-    
-    struct icalperiodtype p, null_p;
-    char *s = icalmemory_strdup(str);
-    char *start, *end = s;
-    icalerrorstate es;
-
-    /* Errors are normally generated in the following code, so save
-       the error state for resoration later */
-
-    icalerrorenum e = icalerrno;
-
-    p.start = p.end = icaltime_null_time();
-    p.duration = icaldurationtype_from_int(0);
-
-    null_p = p;
-
-    if(s == 0) goto error;
-
-    start = s;
-    end = strchr(s, '/');
-
-    if(end == 0) goto error;
-
-    *end = 0;
-    end++;
-
-    p.start = icaltime_from_string(start);
-
-    if (icaltime_is_null_time(p.start)) goto error;
-
-    es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR);
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,ICAL_ERROR_NONFATAL);
-
-    p.end = icaltime_from_string(end);
-
-    icalerror_set_error_state(ICAL_MALFORMEDDATA_ERROR,es);
-    
-
-    if (icaltime_is_null_time(p.end)){
-
-       p.duration = icaldurationtype_from_string(end);
-
-       if(icaldurationtype_as_int(p.duration) == 0) goto error;
-    } 
-
-    icalerrno = e;
-    icalmemory_free_buffer(s);
-    return p;
-
- error:
-    icalmemory_free_buffer(s);
-    icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-    return null_p;
-}
-
-
-const char* icalperiodtype_as_ical_string(struct icalperiodtype p)
-{
-
-    const char* start;
-    const char* end;
-
-    char *buf;
-    size_t buf_size = 40;
-    char* buf_ptr = 0;
-
-    buf = (char*)icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-    
-
-    start = icaltime_as_ical_string(p.start);
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, start); 
-
-    if(!icaltime_is_null_time(p.end)){
-       end = icaltime_as_ical_string(p.end);
-    } else {
-       end = icaldurationtype_as_ical_string(p.duration);
-    }
-
-    icalmemory_append_char(&buf, &buf_ptr, &buf_size, '/'); 
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, end); 
-   
-    icalmemory_add_tmp_buffer(buf); 
-
-    return buf;
-}
-
-
-
-struct icalperiodtype icalperiodtype_null_period() {
-    struct icalperiodtype p;
-    p.start = icaltime_null_time();
-    p.end = icaltime_null_time();
-    p.duration = icaldurationtype_null_duration();
-
-    return p;
-}
-int icalperiodtype_is_null_period(struct icalperiodtype p){
-    
-    if(icaltime_is_null_time(p.start) && 
-       icaltime_is_null_time(p.end) && 
-       icaldurationtype_is_null_duration(p.duration)){
-       return 1;
-    } else {
-       return 0;
-    }
-}
-
-int icalperiodtype_is_valid_period(struct icalperiodtype p){
-    if(icaltime_is_valid_time(p.start) && 
-       (icaltime_is_valid_time(p.end) || icaltime_is_null_time(p.end)) )
-       {
-           return 1;
-       }
-
-    return 0;
-}
-
diff --git a/src/plugins/vcalendar/libical/libical/icalperiod.h b/src/plugins/vcalendar/libical/libical/icalperiod.h
deleted file mode 100644 (file)
index 64d5323..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
- FILE: icalperiod.h
- CREATOR: eric 26 Jan 2001
-
-
- $Id$
- $Locker$
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
- The Original Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
-======================================================================*/
-
-#ifndef ICALPERIOD_H
-#define ICALPERIOD_H
-
-#include "icaltime.h"
-#include "icalduration.h"
-
-struct icalperiodtype 
-{
-       struct icaltimetype start; 
-       struct icaltimetype end; 
-       struct icaldurationtype duration;
-};
-
-struct icalperiodtype icalperiodtype_from_string (const char* str);
-
-const char* icalperiodtype_as_ical_string(struct icalperiodtype p);
-struct icalperiodtype icalperiodtype_null_period();
-int icalperiodtype_is_null_period(struct icalperiodtype p);
-int icalperiodtype_is_valid_period(struct icalperiodtype p);
-
-
-
-
-#endif /* !ICALTIME_H */
-
-
-
diff --git a/src/plugins/vcalendar/libical/libical/icalproperty.c b/src/plugins/vcalendar/libical/libical/icalproperty.c
deleted file mode 100644 (file)
index 855e24b..0000000
+++ /dev/null
@@ -1,815 +0,0 @@
-/* -*- Mode: C -*- */
-
-/*======================================================================
-  FILE: icalproperty.c
-  CREATOR: eric 28 April 1999
-  
-  $Id$
-
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalproperty.c
-
-======================================================================*/
-/*#line 27 "icalproperty.c.in"*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "icalproperty.h"
-#include "icalparameter.h"
-#include "icalcomponent.h"
-#include "pvl.h"
-#include "icalenums.h"
-#include "icalerror.h"
-#include "icalmemory.h"
-#include "icalparser.h"
-
-#include <string.h> /* For icalmemory_strdup, rindex */
-#include <assert.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h> /* for printf */
-#include <stdarg.h> /* for va_list, va_start, etc. */
-                                               
-#define TMP_BUF_SIZE 1024
-
-/* Private routines for icalproperty */
-void icalvalue_set_parent(icalvalue* value,
-                            icalproperty* property);
-icalproperty* icalvalue_get_parent(icalvalue* value);
-
-void icalparameter_set_parent(icalparameter* param,
-                            icalproperty* property);
-icalproperty* icalparameter_get_parent(icalparameter* value);
-
-
-void icalproperty_set_x_name(icalproperty* prop, char* name);
-
-struct icalproperty_impl 
-{
-       char id[5];
-       icalproperty_kind kind;
-       char* x_name;
-       pvl_list parameters;
-       pvl_elem parameter_iterator;
-       icalvalue* value;
-       icalcomponent *parent;
-};
-
-void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args)
-{
-
-    void* vp;
-
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-  
-    while((vp = va_arg(args, void*)) != 0) {
-
-       if (icalvalue_isa_value(vp) != 0 ){
-       } else if (icalparameter_isa_parameter(vp) != 0 ){
-
-           icalproperty_add_parameter((icalproperty*)impl,
-                                      (icalparameter*)vp);
-       } else {
-           assert(0);
-       }
-
-    }
-    
-    
-}
-
-
-struct icalproperty_impl*
-icalproperty_new_impl (icalproperty_kind kind)
-{
-    struct icalproperty_impl* prop;
-
-    if ( ( prop = (struct icalproperty_impl*)
-          malloc(sizeof(struct icalproperty_impl))) == 0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-    
-    strcpy(prop->id,"prop");
-
-    prop->kind = kind;
-    prop->parameters = pvl_newlist();
-    prop->parameter_iterator = 0;
-    prop->value = 0;
-    prop->x_name = 0;
-    prop->parent = 0;
-
-    return prop;
-}
-
-
-icalproperty*
-icalproperty_new (icalproperty_kind kind)
-{
-    if(kind == ICAL_NO_PROPERTY){
-        return 0;
-    }
-
-    return (icalproperty*)icalproperty_new_impl(kind);
-}
-
-
-icalproperty*
-icalproperty_new_clone(icalproperty* prop)
-{
-    struct icalproperty_impl *old = (struct icalproperty_impl*)prop;
-    struct icalproperty_impl *new = icalproperty_new_impl(old->kind);
-    pvl_elem p;
-
-    icalerror_check_arg_rz((prop!=0),"Prop");
-    icalerror_check_arg_rz((old!=0),"old");
-    icalerror_check_arg_rz((new!=0),"new");
-
-    if (old->value !=0) {
-       new->value = icalvalue_new_clone(old->value);
-    }
-
-    if (old->x_name != 0) {
-
-       new->x_name = icalmemory_strdup(old->x_name);
-       
-       if (new->x_name == 0) {
-           icalproperty_free(new);
-           icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-           return 0;
-       }
-    }
-
-    for(p=pvl_head(old->parameters);p != 0; p = pvl_next(p)){
-       icalparameter *param = icalparameter_new_clone(pvl_data(p));
-       
-       if (param == 0){
-           icalproperty_free(new);
-           icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-           return 0;
-       }
-
-       pvl_push(new->parameters,param);
-    
-    } 
-
-    return new;
-
-}
-
-icalproperty* icalproperty_new_from_string(char* str)
-{
-
-    size_t buf_size = 1024;
-    char* buf;
-    char* buf_ptr;  
-    icalproperty *prop;
-    icalcomponent *comp;
-    int errors  = 0;
-
-    icalerror_check_arg_rz( (str!=0),"str");
-
-    buf = icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-
-    /* Is this a HACK or a crafty reuse of code? */
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "BEGIN:VCALENDAR\n");
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, str);
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "\n");    
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, "END:VCALENDAR\n");
-
-    comp = icalparser_parse_string(buf);
-
-    if(comp == 0){
-        icalerror_set_errno(ICAL_PARSE_ERROR);
-       icalmemory_free_buffer(buf);
-        return 0;
-    }
-
-    errors = icalcomponent_count_errors(comp);
-
-    prop = icalcomponent_get_first_property(comp,ICAL_ANY_PROPERTY);
-
-    icalcomponent_remove_property(comp,prop);
-
-    icalcomponent_free(comp);
-    icalmemory_free_buffer(buf);
-
-    if(errors > 0){
-        icalproperty_free(prop);
-        return 0;
-    } else {
-        return prop;
-    }
-    
-}
-
-void
-icalproperty_free (icalproperty* prop)
-{
-    struct icalproperty_impl *p;
-
-    icalparameter* param;
-    
-    icalerror_check_arg_rv((prop!=0),"prop");
-
-    p = (struct icalproperty_impl*)prop;
-
-#ifdef ICAL_FREE_ON_LIST_IS_ERROR
-    icalerror_assert( (p->parent ==0),"Tried to free a property that is still attached to a component. ");
-    
-#else
-    if(p->parent !=0){
-       return;
-    }
-#endif
-
-    if (p->value != 0){
-        icalvalue_set_parent(p->value,0);
-       icalvalue_free(p->value);
-    }
-    
-    while( (param = pvl_pop(p->parameters)) != 0){
-       icalparameter_free(param);
-    }
-    
-    pvl_free(p->parameters);
-    
-    if (p->x_name != 0) {
-       free(p->x_name);
-    }
-    
-    p->kind = ICAL_NO_PROPERTY;
-    p->parameters = 0;
-    p->parameter_iterator = 0;
-    p->value = 0;
-    p->x_name = 0;
-    p->id[0] = 'X';
-    
-    free(p);
-
-}
-
-
-char*
-icalproperty_as_ical_string (icalproperty* prop)
-{   
-    icalparameter *param;
-
-    /* Create new buffer that we can append names, parameters and a
-       value to, and reallocate as needed. Later, this buffer will be
-       copied to a icalmemory_tmp_buffer, which is managed internally
-       by libical, so it can be given to the caller without fear of
-       the caller forgetting to free it */
-
-    const char* property_name = 0; 
-    size_t buf_size = 1024;
-    char* buf;
-    char* buf_ptr;
-    icalvalue* value;
-    char *out_buf;
-
-    char newline[] = "\n";
-
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-    
-    icalerror_check_arg_rz( (prop!=0),"prop");
-
-    buf = icalmemory_new_buffer(buf_size);
-    buf_ptr = buf;
-
-    /* Append property name */
-
-    if (impl->kind == ICAL_X_PROPERTY && impl->x_name != 0){
-       property_name = impl->x_name;
-    } else {
-       property_name = icalproperty_kind_to_string(impl->kind);
-    }
-
-    if (property_name == 0 ) {
-       icalerror_warn("Got a property of an unknown kind.");
-       icalmemory_free_buffer(buf);
-       return 0;
-       
-    }
-
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, property_name);
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-
-
-
-    /* Determine what VALUE parameter to include. The VALUE parameters
-       are ignored in the normal parameter printing ( the block after
-       this one, so we need to do it here */
-    {
-       const char* kind_string = 0;
-
-       icalparameter *orig_val_param
-           = icalproperty_get_first_parameter(prop,ICAL_VALUE_PARAMETER);
-
-       icalvalue *value = icalproperty_get_value(impl);
-
-       icalvalue_kind orig_kind = ICAL_NO_VALUE;
-
-       icalvalue_kind this_kind = ICAL_NO_VALUE;
-
-       icalvalue_kind default_kind 
-           =  icalproperty_kind_to_value_kind(impl->kind);
-
-       if(orig_val_param){
-           orig_kind = (icalvalue_kind)icalparameter_get_value(orig_val_param);
-       }
-
-       if(value != 0){
-           this_kind = icalvalue_isa(value);
-       }
-       
-       
-       if(this_kind == default_kind &&
-          orig_kind != ICAL_NO_VALUE){
-           /* The kind is the default, so it does not need to be
-               included, but do it anyway, since it was explicit in
-               the property. But, use the default, not the one
-               specified in the property */
-           
-           kind_string = icalvalue_kind_to_string(default_kind);
-
-       } else if (this_kind != default_kind && this_kind !=  ICAL_NO_VALUE){
-           /* Not the default, so it must be specified */
-           kind_string = icalvalue_kind_to_string(this_kind);
-       } else {
-           /* Don'tinclude the VALUE parameter at all */
-       }
-
-       if(kind_string!=0){
-           icalmemory_append_string(&buf, &buf_ptr, &buf_size, " ;");
-           icalmemory_append_string(&buf, &buf_ptr, &buf_size, "VALUE=");
-           icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-           icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-       }
-       
-
-    }
-
-    /* Append parameters */
-    for(param = icalproperty_get_first_parameter(prop,ICAL_ANY_PARAMETER);
-       param != 0; 
-       param = icalproperty_get_next_parameter(prop,ICAL_ANY_PARAMETER)) {
-
-       char* kind_string = icalparameter_as_ical_string(param); 
-       icalparameter_kind kind = icalparameter_isa(param);
-
-       if(kind==ICAL_VALUE_PARAMETER){
-           continue;
-       }
-
-       if (kind_string == 0 ) {
-           char temp[TMP_BUF_SIZE];
-           snprintf(temp, TMP_BUF_SIZE,"Got a parameter of unknown kind in %s property",property_name);
-           icalerror_warn(temp);
-           continue;
-       }
-
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, " ;");
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, kind_string);
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-
-    }    
-
-    /* Append value */
-
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, " :");
-
-    value = icalproperty_get_value(prop);
-
-    if (value != 0){
-       const char *str = icalvalue_as_ical_string(value);
-       icalerror_assert((str !=0),"Could not get string representation of a value");
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size, str);
-    } else {
-       icalmemory_append_string(&buf, &buf_ptr, &buf_size,"ERROR: No Value"); 
-       
-    }
-    
-    icalmemory_append_string(&buf, &buf_ptr, &buf_size, newline);
-
-    /* Now, copy the buffer to a tmp_buffer, which is safe to give to
-       the caller without worring about de-allocating it. */
-
-    
-    out_buf = icalmemory_tmp_buffer(strlen(buf)+1);
-    strcpy(out_buf, buf);
-
-    icalmemory_free_buffer(buf);
-
-    return out_buf;
-}
-
-
-
-icalproperty_kind
-icalproperty_isa (icalproperty* property)
-{
-    struct icalproperty_impl *p = (struct icalproperty_impl*)property;
-
-   if(property != 0){
-       return p->kind;
-   }
-
-   return ICAL_NO_PROPERTY;
-}
-
-int
-icalproperty_isa_property (void* property)
-{
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)property;
-
-    icalerror_check_arg_rz( (property!=0), "property");
-
-    if (strcmp(impl->id,"prop") == 0) {
-       return 1;
-    } else {
-       return 0;
-    }
-}
-
-
-void
-icalproperty_add_parameter (icalproperty* prop,icalparameter* parameter)
-{
-    struct icalproperty_impl *p = (struct icalproperty_impl*)prop;
-    
-   icalerror_check_arg_rv( (prop!=0),"prop");
-   icalerror_check_arg_rv( (parameter!=0),"parameter");
-    
-   pvl_push(p->parameters, parameter);
-
-}
-
-void
-icalproperty_set_parameter (icalproperty* prop,icalparameter* parameter)
-{
-    icalparameter_kind kind;
-    
-    icalerror_check_arg_rv( (prop!=0),"prop");
-    icalerror_check_arg_rv( (parameter!=0),"parameter");
-
-    kind = icalparameter_isa(parameter);
-
-    icalproperty_remove_parameter(prop,kind);
-
-    icalproperty_add_parameter(prop,parameter);
-}
-
-void icalproperty_set_parameter_from_string(icalproperty* prop,
-                                            const char* name, const char* value)
-{
-
-    icalparameter_kind kind;
-    icalparameter *param;
-
-    icalerror_check_arg_rv( (prop!=0),"prop");
-    icalerror_check_arg_rv( (name!=0),"name");
-    icalerror_check_arg_rv( (value!=0),"value");
-    
-    kind = icalparameter_string_to_kind(name);
-
-    if(kind == ICAL_NO_PARAMETER){
-        icalerror_set_errno(ICAL_BADARG_ERROR);
-        return;
-    }
-
-    param  = icalparameter_new_from_value_string(kind,value);
-
-    if (param == 0){
-        icalerror_set_errno(ICAL_BADARG_ERROR);
-        return;
-    }
-
-    icalproperty_set_parameter(prop,param);
-
-}
-
-const char* icalproperty_get_parameter_as_string(icalproperty* prop,
-                                                 const char* name)
-{
-    icalparameter_kind kind;
-    icalparameter *param;
-    char* str;
-    char* pv;
-
-    icalerror_check_arg_rz( (prop!=0),"prop");
-    icalerror_check_arg_rz( (name!=0),"name");
-    
-    kind = icalparameter_string_to_kind(name);
-
-    if(kind == ICAL_NO_PARAMETER){
-        /* icalenum_string_to_parameter_kind will set icalerrno */
-        return 0;
-    }
-
-    param = icalproperty_get_first_parameter(prop,kind);
-
-    if (param == 0){
-        return 0;
-    }
-
-    str = icalparameter_as_ical_string(param);
-
-    pv = strchr(str,'=');
-
-    if(pv == 0){
-        icalerror_set_errno(ICAL_INTERNAL_ERROR);
-        return 0;
-    }
-
-    return pv+1;
-
-}
-
-void
-icalproperty_remove_parameter (icalproperty* prop, icalparameter_kind kind)
-{
-    pvl_elem p;     
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-
-    icalerror_check_arg_rv((prop!=0),"prop");
-    
-    for(p=pvl_head(impl->parameters);p != 0; p = pvl_next(p)){
-       icalparameter* param = (icalparameter *)pvl_data (p);
-        if (icalparameter_isa(param) == kind) {
-            pvl_remove (impl->parameters, p);
-            icalparameter_free (param);
-            break;
-        }
-    }                       
-}
-
-
-int
-icalproperty_count_parameters (icalproperty* prop)
-{
-    struct icalproperty_impl *p = (struct icalproperty_impl*)prop;
-
-    if(prop != 0){
-       return pvl_count(p->parameters);
-    }
-
-    icalerror_set_errno(ICAL_USAGE_ERROR);
-    return -1;
-}
-
-
-icalparameter*
-icalproperty_get_first_parameter (icalproperty* prop, icalparameter_kind kind)
-{
-   struct icalproperty_impl *p = (struct icalproperty_impl*)prop;
-
-   icalerror_check_arg_rz( (prop!=0),"prop");
-   
-   p->parameter_iterator = pvl_head(p->parameters);
-
-   if (p->parameter_iterator == 0) {
-       return 0;
-   }
-
-   for( p->parameter_iterator = pvl_head(p->parameters);
-       p->parameter_iterator !=0;
-       p->parameter_iterator = pvl_next(p->parameter_iterator)){
-
-       icalparameter *param = (icalparameter*)pvl_data(p->parameter_iterator);
-
-       if(icalparameter_isa(param) == kind || kind == ICAL_ANY_PARAMETER){
-          return param;
-       }
-   }
-
-   return 0;
-}
-
-
-icalparameter*
-icalproperty_get_next_parameter (icalproperty* prop, icalparameter_kind kind)
-{
-    struct icalproperty_impl *p = (struct icalproperty_impl*)prop;
-    
-    icalerror_check_arg_rz( (prop!=0),"prop");
-    
-    if (p->parameter_iterator == 0) {
-       return 0;
-    }
-    
-    for( p->parameter_iterator = pvl_next(p->parameter_iterator);
-        p->parameter_iterator !=0;
-        p->parameter_iterator = pvl_next(p->parameter_iterator)){
-       
-       icalparameter *param = (icalparameter*)pvl_data(p->parameter_iterator);
-       
-       if(icalparameter_isa(param) == kind || kind == ICAL_ANY_PARAMETER){
-           return param;
-       }
-    }
-    
-    return 0;
-
-}
-
-void
-icalproperty_set_value (icalproperty* prop, icalvalue* value)
-{
-    struct icalproperty_impl *p = (struct icalproperty_impl*)prop;
-
-    icalerror_check_arg_rv((prop !=0),"prop");
-    icalerror_check_arg_rv((value !=0),"value");
-    
-    if (p->value != 0){
-       icalvalue_set_parent(p->value,0);
-       icalvalue_free(p->value);
-       p->value = 0;
-    }
-
-    p->value = value;
-    
-    icalvalue_set_parent(value,prop);
-}
-
-
-void icalproperty_set_value_from_string(icalproperty* prop,const char* str,
-                                        const char* type)
-{
-    icalvalue *oval,*nval;
-    icalvalue_kind kind = ICAL_NO_VALUE;
-
-    icalerror_check_arg_rv( (prop!=0),"prop"); 
-    icalerror_check_arg_rv( (str!=0),"str");
-    icalerror_check_arg_rv( (type!=0),"type");
-   
-    if(strcmp(type,"NO")==0){
-        /* Get the type from the value the property already has, if it exists */
-        oval = icalproperty_get_value(prop);
-        if(oval != 0){
-            /* Use the existing value kind */
-            kind  = icalvalue_isa(oval);
-        } else {   
-            /* Use the default kind for the property */
-            kind = icalproperty_kind_to_value_kind(icalproperty_isa(prop));
-        }
-    } else {
-        /* Use the given kind string */
-        kind = icalvalue_string_to_kind(type);
-    }
-
-    if(kind == ICAL_NO_VALUE){
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-        return;
-    }
-
-    nval = icalvalue_new_from_string(kind, str);
-
-    if(nval == 0){
-        /* icalvalue_new_from_string sets errno */
-        assert(icalerrno != ICAL_NO_ERROR);
-        return;
-    }
-
-    icalproperty_set_value(prop,nval);
-
-
-}
-
-icalvalue*
-icalproperty_get_value (icalproperty* prop)
-{
-    struct icalproperty_impl *p = (struct icalproperty_impl*)prop;
-    
-    icalerror_check_arg_rz( (prop!=0),"prop");
-    
-    return p->value;
-}
-
-const char* icalproperty_get_value_as_string(icalproperty* prop)
-{
-    icalvalue *value;
-    
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-    
-    icalerror_check_arg_rz( (prop!=0),"prop");
-
-    value = impl->value; 
-
-    return icalvalue_as_ical_string(value);
-}
-
-
-void icalproperty_set_x_name(icalproperty* prop, char* name)
-{
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-
-    icalerror_check_arg_rv( (name!=0),"name");
-    icalerror_check_arg_rv( (prop!=0),"prop");
-
-    if (impl->x_name != 0) {
-        free(impl->x_name);
-    }
-
-    impl->x_name = icalmemory_strdup(name);
-
-    if(impl->x_name == 0){
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-    }
-
-}
-                              
-char* icalproperty_get_x_name(icalproperty* prop){
-
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-
-    icalerror_check_arg_rz( (prop!=0),"prop");
-
-    return impl->x_name;
-}
-
-
-/* From Jonathan Yue <jonathan.yue@cp.net>    */
-char* icalproperty_get_name (icalproperty* prop)
-{
-
-    const char* property_name = 0;
-    size_t buf_size = 256;
-    char* buf = icalmemory_new_buffer(buf_size);
-    char* buf_ptr = buf;  
-
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)prop;
-
-    icalerror_check_arg_rz( (prop!=0),"prop");
-    if (impl->kind == ICAL_X_PROPERTY && impl->x_name != 0){
-        property_name = impl->x_name;
-    } else {
-        property_name = icalproperty_kind_to_string(impl->kind);
-    }
-    if (property_name == 0 ) {
-        icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       icalmemory_free_buffer(buf);
-        return NULL;
-
-    } else {
-        /* _append_string will automatically grow the buffer if
-           property_name is longer than the initial buffer size */
-        icalmemory_append_string(&buf, &buf_ptr, &buf_size, property_name);
-    }
-    /* Add the buffer to the temporary buffer ring -- the caller will
-       not have to free the memory. */
-    icalmemory_add_tmp_buffer(buf);
-    return buf;
-}
-                            
-
-
-
-void icalproperty_set_parent(icalproperty* property,
-                            icalcomponent* component)
-{
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)property;
-
-    icalerror_check_arg_rv( (property!=0),"property");
-    
-    impl->parent = component;
-}
-
-icalcomponent* icalproperty_get_parent(icalproperty* property)
-{
-    struct icalproperty_impl *impl = (struct icalproperty_impl*)property;
-    icalerror_check_arg_rz( (property!=0),"property");
-
-    return impl->parent;
-}
-
-
-
-
-
-
-
-/* Everything below this line is machine generated. Do not edit. */
diff --git a/src/plugins/vcalendar/libical/libical/icalproperty.h b/src/plugins/vcalendar/libical/libical/icalproperty.h
deleted file mode 100644 (file)
index 6f5f1bf..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- Mode: C -*- */
-/*======================================================================
-  FILE: icalproperty.h
-  CREATOR: eric 20 March 1999
-
-
-  $Id$
-  $Locker$
-
-  
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-  The original code is icalparam.h
-
-  ======================================================================*/
-
-
-#ifndef ICALPROPERTY_H
-#define ICALPROPERTY_H
-
-#include <time.h>
-
-
-#include "icalderivedparameter.h"
-
-#include "icalvalue.h"  
-#include "icalrecur.h"
-
-/* Actually in icalderivedproperty.h:
-   typedef void icalproperty; */
-
-#include "icalderivedproperty.h" /* To get icalproperty_kind enumerations */
-
-icalproperty* icalproperty_new(icalproperty_kind kind);
-
-icalproperty* icalproperty_new_clone(icalproperty * prop);
-
-icalproperty* icalproperty_new_from_string(char* str);
-
-char* icalproperty_as_ical_string(icalproperty* prop);
-
-void  icalproperty_free(icalproperty* prop);
-
-icalproperty_kind icalproperty_isa(icalproperty* property);
-int icalproperty_isa_property(void* property);
-
-void icalproperty_add_parameter(icalproperty* prop,icalparameter* parameter);
-void icalproperty_set_parameter(icalproperty* prop,icalparameter* parameter);
-void icalproperty_set_parameter_from_string(icalproperty* prop,
-                                            const char* name, const char* value);
-const char* icalproperty_get_parameter_as_string(icalproperty* prop,
-                                                 const char* name);
-
-void icalproperty_remove_parameter(icalproperty* prop,
-                                  icalparameter_kind kind);
-
-int icalproperty_count_parameters(icalproperty* prop);
-
-/* Iterate through the parameters */
-icalparameter* icalproperty_get_first_parameter(icalproperty* prop,
-                                               icalparameter_kind kind);
-icalparameter* icalproperty_get_next_parameter(icalproperty* prop,
-                                               icalparameter_kind kind);
-/* Access the value of the property */
-void icalproperty_set_value(icalproperty* prop, icalvalue* value);
-void icalproperty_set_value_from_string(icalproperty* prop,const char* value, const char* kind);
-
-icalvalue* icalproperty_get_value(icalproperty* prop);
-const char* icalproperty_get_value_as_string(icalproperty* prop);
-
-/* Deal with X properties */
-
-void icalproperty_set_x_name(icalproperty* prop, char* name);
-char* icalproperty_get_x_name(icalproperty* prop);
-
-/* Return the name of the property -- the type name converted to a
-   string, or the value of _get_x_name if the type is and X property */
-char* icalproperty_get_name (icalproperty* prop);
-
-icalvalue_kind icalparameter_value_to_value_kind(icalparameter_value value);
-
-/* Convert kinds to string and get default value type */
-
-icalvalue_kind icalproperty_kind_to_value_kind(icalproperty_kind kind);
-icalvalue_kind icalproperty_value_kind_to_kind(icalvalue_kind kind);
-const char* icalproperty_kind_to_string(icalproperty_kind kind);
-icalproperty_kind icalproperty_string_to_kind(const char* string);
-
-icalproperty_method icalproperty_string_to_method(const char* str);
-const char* icalproperty_method_to_string(icalproperty_method method);
-
-
-const char* icalproperty_enum_to_string(int e);
-int icalproperty_string_to_enum(const char* str);
-
-const char* icalproperty_status_to_string(icalproperty_status);
-icalproperty_status icalproperty_string_to_status(const char* string);
-
-int icalproperty_enum_belongs_to_property(icalproperty_kind kind, int e);
-
-
-
-
-#endif /*ICALPROPERTY_H*/
diff --git a/src/plugins/vcalendar/libical/libical/icalrecur.c b/src/plugins/vcalendar/libical/libical/icalrecur.c
deleted file mode 100644 (file)
index 09ed9c0..0000000
+++ /dev/null
@@ -1,2245 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icalrecur.c
-  CREATOR: eric 16 May 2000
-  
-  $Id$
-  $Locker$
-    
-
- (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of either: 
-
-    The LGPL as published by the Free Software Foundation, version
-    2.1, available at: http://www.fsf.org/copyleft/lesser.html
-
-  Or:
-
-    The Mozilla Public License Version 1.0. You may obtain a copy of
-    the License at http://www.mozilla.org/MPL/
-
-
-  How this code works:
-
-  Processing starts when the caller generates a new recurrence
-  iterator via icalrecur_iterator_new(). This routine copies the
-  recurrence rule into the iterator and extracts things like start and
-  end dates. Then, it checks if the rule is legal, using some logic
-  from RFC2445 and some logic that probably should be in RFC2445.
-
-  Then, icalrecur_iterator_new() re-writes some of the BY*
-  arrays. This involves ( via a call to setup_defaults() ) :
-
-  1) For BY rule parts with no data ( ie BYSECOND was not specified )
-  copy the corresponding time part from DTSTART into the BY array. (
-  So impl->by_ptrs[BY_SECOND] will then have one element if is
-  originally had none ) This only happens if the BY* rule part data
-  would expand the number of occurrences in the occurrence set. This
-  lets the code ignore DTSTART later on and still use it to get the
-  time parts that were not specified in any other way.
-  
-  2) For the by rule part that are not the same interval as the
-  frequency -- for HOURLY anything but BYHOUR, for instance -- copy the
-  first data element from the rule part into the first occurrence. For
-  example, for "INTERVAL=MONTHLY and BYHOUR=10,30", initialize the
-  first time to be returned to have an hour of 10.
-
-  Finally, for INTERVAL=YEARLY, the routine expands the rule to get
-  all of the days specified in the rule. The code will do this for
-  each new year, and this is the first expansion. This is a special
-  case for the yearly interval; no other frequency gets expanded this
-  way. The yearly interval is the most complex, so some special
-  processing is required.
-
-  After creating a new iterator, the caller will make successive calls
-  to icalrecur_iterator_next() to get the next time specified by the
-  rule. The main part of this routine is a switch on the frequency of
-  the rule. Each different frequency is handled by a different
-  routine. 
-
-  For example, next_hour handles the case of INTERVAL=HOURLY, and it
-  is called by other routines to get the next hour. First, the routine
-  tries to get the next minute part of a time with a call to
-  next_minute(). If next_minute() returns 1, it has reached the end of
-  its data, usually the last element of the BYMINUTE array. Then, if
-  there is data in the BYHOUR array, the routine changes the hour to
-  the next one in the array. If INTERVAL=HOURLY, the routine advances
-  the hour by the interval.
-
-  If the routine used the last hour in the BYHOUR array, and the
-  INTERVAL=HOURLY, then the routine calls increment_monthday() to set
-  the next month day. The increment_* routines may call higher routine
-  to increment the month or year also.
-
-  The code for INTERVAL=DAILY is handled by next_day(). First, the
-  routine tries to get the next hour part of a time with a call to
-  next_hour. If next_hour() returns 1, it has reached the end of its
-  data, usually the last element of the BYHOUR array. This means that
-  next_day() should increment the time to the next day. If FREQUENCY==DAILY,
-  the routine increments the day by the interval; otherwise, it
-  increments the day by 1.
-
-  Next_day() differs from next_hour because it does not use the BYDAY
-  array to select an appropriate day. Instead, it returns every day (
-  incrementing by 1 if the frequency is not DAILY with INTERVAL!=1)
-  Any days that are not specified in an non-empty BYDAY array are
-  filtered out later.
-
-  Generally, the flow of these routine is for a next_* call a next_*
-  routine of a lower interval ( next_day calls next_hour) and then to
-  possibly call an increment_* routine of an equal or higher
-  interval. ( next_day calls increment_monthday() )
-
-  When the call to the original next_* routine returns,
-  icalrecur_iterator_next() will check the returned data against other
-  BYrule parts to determine if is should be excluded by calling
-  check_contracting_rules. Generally, a contracting rule is any with a
-  larger time span than the interval. For instance, if
-  INTERVAL=DAILY, BYMONTH is a contracting rule part. 
-
-  Check_contracting_rules() uses icalrecur_check_rulepart() to do its
-  work. icalrecur_check_rulepart() uses expand_map[] to determine if a rule
-  is contracting, and if it is, and if the BY rule part has some data,
-  then the routine checks if the value of a component of the time is
-  part of the byrule part. For instance, for "INTERVAL=DAILY;
-  BYMONTH=6,10", icalrecur_check_rulepart() would check that the time value
-  given to it has a month of either 6 or 10.
-
-  Finally, icalrecur_iterator_next() does a few other checks on the
-  time value, and if it passes, it returns the time.
-
-  A note about the end_of_data flag. The flag indicates that the
-  routine is at the end of its data -- the last BY rule if the routine
-  is using by rules, or the last day of the week/month/year/etc if
-  not.
-
-  This flag is usually set early in a next_* routine and returned in
-  the end. The way it is used allows the next_* routine to set the
-  last time back to the first element in a BYxx rule, and then signal
-  to the higer level routine to increment the next higher level. For
-  instance. WITH FREQ=MONTHLY;BYDAY=TU,FR, After next_weekday_by_month
-  runs though both TU and FR, it sets the week day back to TU and sets
-  end_of_data to 1x. This signals next_month to increment the month.
-
-
- ======================================================================*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "icalrecur.h"
-
-#ifdef ICAL_NO_LIBICAL
-#define icalerror_set_errno(x)
-#define  icalerror_check_arg_rv(x,y)
-#else
-#include "icalerror.h"
-#include "icalmemory.h"
-#endif
-
-#include <glib.h> /* for malloc */
-#include <stdlib.h> /* for malloc */
-#include <errno.h> /* for errno */
-#include <string.h> /* for strdup and strchr*/
-#include <assert.h>
-#include <stddef.h> /* For offsetof() macro */
-
-#include "pvl.h"
-
-#define TEMP_MAX 1024
-
-
-#define BYDAYIDX impl->by_indices[BY_DAY]
-#define BYDAYPTR impl->by_ptrs[BY_DAY]
-
-#define BYMONIDX impl->by_indices[BY_MONTH]
-#define BYMONPTR impl->by_ptrs[BY_MONTH]
-
-#define BYMDIDX impl->by_indices[BY_MONTH_DAY]
-#define BYMDPTR impl->by_ptrs[BY_MONTH_DAY]
-
-#define BYWEEKIDX impl->by_indices[BY_WEEK_NO]
-#define BYWEEKPTR impl->by_ptrs[BY_WEEK_NO]
-
-const char* icalrecur_freq_to_string(icalrecurrencetype_frequency kind);
-icalrecurrencetype_frequency icalrecur_string_to_freq(const char* str);
-
-const char* icalrecur_weekday_to_string(icalrecurrencetype_weekday kind);
-icalrecurrencetype_weekday icalrecur_string_to_weekday(const char* str);
-
-
-
-/*********************** Rule parsing routines ************************/
-
-struct icalrecur_parser {
-       const char* rule;
-        char* copy;
-       char* this_clause;
-       char* next_clause;
-
-       struct icalrecurrencetype rt;
-};
-
-const char* icalrecur_first_clause(struct icalrecur_parser *parser)
-{
-    char *idx;
-    parser->this_clause = parser->copy;
-    
-    idx = strchr(parser->this_clause,';');
-
-    if (idx == 0){
-       parser->next_clause = 0;
-       return 0;
-    }
-
-    *idx = 0;
-    idx++;
-    parser->next_clause = idx;
-
-    return parser->this_clause;
-
-}
-
-const char* icalrecur_next_clause(struct icalrecur_parser *parser)
-{
-    char* idx;
-
-    parser->this_clause = parser->next_clause;
-
-    if(parser->this_clause == 0){
-       return 0;
-    }
-
-    idx = strchr(parser->this_clause,';');
-
-    if (idx == 0){
-       parser->next_clause = 0;
-    } else {
-
-       *idx = 0;
-       idx++;
-       parser->next_clause = idx;
-    }
-       
-    return parser->this_clause;
-
-}
-
-void icalrecur_clause_name_and_value(struct icalrecur_parser *parser,
-                                    char** name, char** value)
-{
-    char *idx;
-
-    *name = parser->this_clause;
-
-    idx = strchr(parser->this_clause,'=');
-
-    if (idx == 0){
-       *name = 0;
-       *value = 0;
-       return;
-    }
-    
-    *idx = 0;
-    idx++;
-    *value = idx;
-}
-
-void icalrecur_add_byrules(struct icalrecur_parser *parser, short *array,
-                          int size, char* vals)
-{
-    char *t, *n;
-    int i=0;
-    int sign = 1;
-    short v;
-
-    n = vals;
-
-    while(n != 0){
-
-       if(i == size){
-           return;
-       }
-       
-       t = n;
-
-       n = strchr(t,',');
-
-       if(n != 0){
-           *n = 0;
-           n++;
-       }
-       
-       /* Get optional sign. HACK. sign is not allowed for all BYxxx
-           rule parts */
-       if( *t == '-'){
-           sign = -1;
-           t++;
-       } else if (*t == '+'){
-           sign = 1;
-           t++;
-       }
-
-       v = atoi(t) * sign ;
-
-
-       array[i++] = v;
-       array[i] =  ICAL_RECURRENCE_ARRAY_MAX;
-
-    }
-
-}
-
-void icalrecur_add_bydayrules(struct icalrecur_parser *parser, const char* vals)
-{
-
-    char *t, *n;
-    int i=0;
-    int sign = 1;
-    int weekno = 0;
-    icalrecurrencetype_weekday wd;
-    short *array = parser->rt.by_day;
-    char* end;
-    char* vals_copy;
-
-    vals_copy = icalmemory_strdup(vals);
-
-    end = (char*)vals_copy+strlen(vals_copy);
-    n = vals_copy;
-
-    while(n != 0){
-       
-
-       t = n;
-
-       n = strchr(t,',');
-
-       if(n != 0){
-           *n = 0;
-           n++;
-       }
-       
-       /* Get optional sign. */
-       if( *t == '-'){
-           sign = -1;
-           t++;
-       } else if (*t == '+'){
-           sign = 1;
-           t++;
-       } else {
-           sign = 1;
-       }
-
-       weekno = 0;
-       /* Get Optional weekno */
-       if( sscanf(t,"%d",&weekno) != 0){
-           if (n != 0){
-               int weeknolen = (n-t)-3; /* 3 -> one for \0, 2 for day name */
-               /* could use abs(log10(weekno))+1, but that needs libm */
-               t += weeknolen;
-           } else {
-               t = end -2;
-           }
-       }
-
-       wd = icalrecur_string_to_weekday(t);
-
-       array[i++] = sign* ((int)wd + 8*weekno);
-       array[i] =  ICAL_RECURRENCE_ARRAY_MAX;
-
-    }
-
-    free(vals_copy);
-
-}
-
-
-struct icalrecurrencetype icalrecurrencetype_from_string(const char* str)
-{
-    struct icalrecur_parser parser;
-
-    memset(&parser,0,sizeof(parser));
-    icalrecurrencetype_clear(&parser.rt);
-
-    icalerror_check_arg_re(str!=0,"str",parser.rt);
-
-
-    /* Set up the parser struct */
-    parser.rule = str;
-    parser.copy = icalmemory_strdup(parser.rule);
-    parser.this_clause = parser.copy;
-
-    if(parser.copy == 0){
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return parser.rt;
-    }
-
-    /* Loop through all of the clauses */
-    for(icalrecur_first_clause(&parser); 
-       parser.this_clause != 0;
-       icalrecur_next_clause(&parser))
-    {
-       char *name, *value;
-       icalrecur_clause_name_and_value(&parser,&name,&value);
-
-       if(name == 0){
-           icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-           icalrecurrencetype_clear(&parser.rt);
-           return parser.rt;
-       }
-
-       if (strcmp(name,"FREQ") == 0){
-           parser.rt.freq = icalrecur_string_to_freq(value);
-       } else if (strcmp(name,"COUNT") == 0){
-           parser.rt.count = atoi(value);
-       } else if (strcmp(name,"UNTIL") == 0){
-           parser.rt.until = icaltime_from_string(value);
-       } else if (strcmp(name,"INTERVAL") == 0){
-           parser.rt.interval = atoi(value);
-       } else if (strcmp(name,"WKST") == 0){
-           parser.rt.week_start = icalrecur_string_to_weekday(value);
-       } else if (strcmp(name,"BYSECOND") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_second,
-                                 ICAL_BY_SECOND_SIZE,value);
-       } else if (strcmp(name,"BYMINUTE") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_minute,
-                                 ICAL_BY_MINUTE_SIZE,value);
-       } else if (strcmp(name,"BYHOUR") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_hour,
-                                 ICAL_BY_HOUR_SIZE,value);
-       } else if (strcmp(name,"BYDAY") == 0){
-           icalrecur_add_bydayrules(&parser,value);
-       } else if (strcmp(name,"BYMONTHDAY") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_month_day,
-                                 ICAL_BY_MONTHDAY_SIZE,value);
-       } else if (strcmp(name,"BYYEARDAY") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_year_day,
-                                 ICAL_BY_YEARDAY_SIZE,value);
-       } else if (strcmp(name,"BYWEEKNO") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_week_no,
-                                 ICAL_BY_WEEKNO_SIZE,value);
-       } else if (strcmp(name,"BYMONTH") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_month,
-                                 ICAL_BY_MONTH_SIZE,value);
-       } else if (strcmp(name,"BYSETPOS") == 0){
-           icalrecur_add_byrules(&parser,parser.rt.by_set_pos,
-                                 ICAL_BY_SETPOS_SIZE,value);
-       } else {
-           icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-           icalrecurrencetype_clear(&parser.rt);
-           return parser.rt;
-       }
-       
-    }
-
-    free(parser.copy);
-
-    return parser.rt;
-
-}
-
-#ifndef ICAL_NO_LIBICAL
-
-struct { char* str;size_t offset; short limit;  } recurmap[] = 
-{
-    {";BYSECOND=",offsetof(struct icalrecurrencetype,by_second),60},
-    {";BYMINUTE=",offsetof(struct icalrecurrencetype,by_minute),60},
-    {";BYHOUR=",offsetof(struct icalrecurrencetype,by_hour),24},
-    {";BYDAY=",offsetof(struct icalrecurrencetype,by_day),7},
-    {";BYMONTHDAY=",offsetof(struct icalrecurrencetype,by_month_day),31},
-    {";BYYEARDAY=",offsetof(struct icalrecurrencetype,by_year_day),366},
-    {";BYWEEKNO=",offsetof(struct icalrecurrencetype,by_week_no),52},
-    {";BYMONTH=",offsetof(struct icalrecurrencetype,by_month),12},
-    {";BYSETPOS=",offsetof(struct icalrecurrencetype,by_set_pos),366},
-    {0,0,0},
-};
-
-/* A private routine in icalvalue.c */
-void print_datetime_to_string(char* str,  struct icaltimetype *data);
-
-char* icalrecurrencetype_as_string(struct icalrecurrencetype *recur)
-{
-    char* str;
-    char *str_p;
-    size_t buf_sz = 200;
-    char temp[20];
-    int i,j;
-
-    if(recur->freq == ICAL_NO_RECURRENCE){
-       return 0;
-    }
-
-    str = (char*)icalmemory_tmp_buffer(buf_sz);
-    str_p = str;
-
-    icalmemory_append_string(&str,&str_p,&buf_sz,"FREQ=");
-    icalmemory_append_string(&str,&str_p,&buf_sz,
-                            icalrecur_freq_to_string(recur->freq));
-
-    if(recur->until.year != 0){
-       
-       temp[0] = 0;
-       print_datetime_to_string(temp,&(recur->until));
-       
-       icalmemory_append_string(&str,&str_p,&buf_sz,";UNTIL=");
-       icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-    }
-
-    if(recur->count != 0){
-       sprintf(temp,"%d",recur->count);
-       icalmemory_append_string(&str,&str_p,&buf_sz,";COUNT=");
-       icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-    }
-
-    if(recur->interval != 0){
-       sprintf(temp,"%d",recur->interval);
-       icalmemory_append_string(&str,&str_p,&buf_sz,";INTERVAL=");
-       icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-    }
-    
-    for(j =0; recurmap[j].str != 0; j++){
-       short* array = (short*)(recurmap[j].offset+ (size_t)recur);
-       short limit = recurmap[j].limit;
-
-       /* Skip unused arrays */
-       if( array[0] != ICAL_RECURRENCE_ARRAY_MAX ) {
-
-           icalmemory_append_string(&str,&str_p,&buf_sz,recurmap[j].str);
-           
-           for(i=0; 
-               i< limit  && array[i] != ICAL_RECURRENCE_ARRAY_MAX;
-               i++){
-               if (j == 3) { /* BYDAY */
-                   short dow = icalrecurrencetype_day_day_of_week(array[i]);
-                   const char *daystr = icalrecur_weekday_to_string(dow);
-                   short pos;
-
-                   pos = icalrecurrencetype_day_position(array[i]);  
-                   
-                   if (pos == 0)
-                       icalmemory_append_string(&str,&str_p,&buf_sz,daystr);
-                   else {
-                       sprintf(temp,"%d%s",pos,daystr);
-                       icalmemory_append_string(&str,&str_p,&buf_sz,temp);
-                   }                  
-                   
-               } else {
-                   sprintf(temp,"%d",array[i]);
-                   icalmemory_append_string(&str,&str_p,&buf_sz, temp);
-               }
-               
-               if( (i+1)<limit &&array[i+1] 
-                   != ICAL_RECURRENCE_ARRAY_MAX){
-                   icalmemory_append_char(&str,&str_p,&buf_sz,',');
-               }
-           }    
-       }   
-    }
-
-    return  str;
-}
-#endif
-
-
-
-/************************* occurrence iteration routiens ******************/
-
-enum byrule {
-    NO_CONTRACTION = -1,
-    BY_SECOND = 0,
-    BY_MINUTE = 1,
-    BY_HOUR = 2,
-    BY_DAY = 3,
-    BY_MONTH_DAY = 4,
-    BY_YEAR_DAY = 5,
-    BY_WEEK_NO = 6,
-    BY_MONTH = 7,
-    BY_SET_POS
-};
-
-
-
-struct icalrecur_iterator_impl {
-       
-    struct icaltimetype dtstart; /* Hack. Make into time_t */
-    struct icaltimetype last; /* last time return from _iterator_next*/
-    int occurrence_no; /* number of step made on t iterator */
-    struct icalrecurrencetype rule;
-    
-    short days[366];
-    short days_index;
-    
-    enum byrule byrule;
-    short by_indices[9];
-    short orig_data[9]; /* 1 if there was data in the byrule */
-    
-    
-    short *by_ptrs[9]; /* Pointers into the by_* array elements of the rule */
-    
-};
-
-int icalrecur_iterator_sizeof_byarray(short* byarray)
-{
-    int array_itr;
-
-    for(array_itr = 0; 
-       byarray[array_itr] != ICAL_RECURRENCE_ARRAY_MAX;
-       array_itr++){
-    }
-
-    return array_itr;
-}
-
-enum expand_table {
-    UNKNOWN  = 0,
-    CONTRACT = 1,
-    EXPAND =2,
-    ILLEGAL=3
-};
-
-/* The split map indicates, for a particular interval, wether a BY_*
-   rule part expands the number of instances in the occcurrence set or
-   contracts it. 1=> contract, 2=>expand, and 3 means the pairing is
-   not allowed. */
-struct expand_split_map_struct 
-{ 
-       icalrecurrencetype_frequency frequency;
-
-       /* Elements of the 'map' array correspond to the BYxxx rules:
-           Second,Minute,Hour,Day,Month Day,Year Day,Week No,Month*/
-
-       short map[8];
-}; 
-
-struct expand_split_map_struct expand_map[] =
-{
-    {ICAL_SECONDLY_RECURRENCE,{1,1,1,1,1,1,1,1}},
-    {ICAL_MINUTELY_RECURRENCE,{2,1,1,1,1,1,1,1}},
-    {ICAL_HOURLY_RECURRENCE,  {2,2,1,1,1,1,1,1}},
-    {ICAL_DAILY_RECURRENCE,   {2,2,2,1,1,1,1,1}},
-    {ICAL_WEEKLY_RECURRENCE,  {2,2,2,2,3,3,1,1}},
-    {ICAL_MONTHLY_RECURRENCE, {2,2,2,2,2,3,3,1}},
-    {ICAL_YEARLY_RECURRENCE,  {2,2,2,2,2,2,2,2}},
-    {ICAL_NO_RECURRENCE,      {0,0,0,0,0,0,0,0}}
-
-};
-
-
-
-/* Check that the rule has only the two given interday byrule parts. */
-int icalrecur_two_byrule(struct icalrecur_iterator_impl* impl,
-                        enum byrule one,enum byrule two)
-{
-    short test_array[9];
-    enum byrule itr;
-    int passes = 0;
-
-    memset(test_array,0,9);
-
-    test_array[one] = 1;
-    test_array[two] = 1;
-
-    for(itr = BY_DAY; itr != BY_SET_POS; itr++){
-
-       if( (test_array[itr] == 0  &&
-            impl->by_ptrs[itr][0] != ICAL_RECURRENCE_ARRAY_MAX
-           ) ||
-           (test_array[itr] == 1  &&
-            impl->by_ptrs[itr][0] == ICAL_RECURRENCE_ARRAY_MAX
-               ) 
-           ) {
-           /* test failed */
-           passes = 0;
-       }
-    }
-
-    return passes;
-
-} 
-
-/* Check that the rule has only the one given interdat byrule parts. */
-int icalrecur_one_byrule(struct icalrecur_iterator_impl* impl,enum byrule one)
-{
-    int passes = 1;
-    enum byrule itr;
-
-    for(itr = BY_DAY; itr != BY_SET_POS; itr++){
-       
-       if ((itr==one && impl->by_ptrs[itr][0] == ICAL_RECURRENCE_ARRAY_MAX) ||
-           (itr!=one && impl->by_ptrs[itr][0] != ICAL_RECURRENCE_ARRAY_MAX)) {
-           passes = 0;
-       }
-    }
-
-    return passes;
-} 
-
-int count_byrules(struct icalrecur_iterator_impl* impl)
-{
-    int count = 0;
-    enum byrule itr;
-
-    for(itr = BY_DAY; itr <= BY_SET_POS; itr++){
-       if(impl->by_ptrs[itr][0] != ICAL_RECURRENCE_ARRAY_MAX){
-           count++;
-       }
-    }
-
-    return count;
-}
-
-
-void setup_defaults(struct icalrecur_iterator_impl* impl, 
-                   enum byrule byrule, icalrecurrencetype_frequency req,
-                   short deftime, int *timepart)
-{
-
-    icalrecurrencetype_frequency freq;
-    freq = impl->rule.freq;
-
-    /* Re-write the BY rule arrays with data from the DTSTART time so
-       we don't have to explicitly deal with DTSTART */
-
-    if(impl->by_ptrs[byrule][0] == ICAL_RECURRENCE_ARRAY_MAX &&
-       expand_map[freq].map[byrule] != CONTRACT){
-       impl->by_ptrs[byrule][0] = deftime;
-    }
-
-    /* Initialize the first occurence */
-    if( freq != req && expand_map[freq].map[byrule] != CONTRACT){
-       *timepart = impl->by_ptrs[byrule][0];
-    }
-
-
-}
-
-int has_by_data(struct icalrecur_iterator_impl* impl, enum byrule byrule){
-
-    return (impl->orig_data[byrule] == 1);
-}
-
-
-int expand_year_days(struct icalrecur_iterator_impl* impl,short year);
-
-
-icalrecur_iterator* icalrecur_iterator_new(struct icalrecurrencetype rule, 
-                                          struct icaltimetype dtstart)
-{
-    struct icalrecur_iterator_impl* impl;
-    icalrecurrencetype_frequency freq;
-
-    short days_in_month;
-
-    if ( ( impl = (struct icalrecur_iterator_impl *)
-          malloc(sizeof(struct icalrecur_iterator_impl))) == 0) {
-       icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-       return 0;
-    }
-
-    memset(impl,0,sizeof(struct icalrecur_iterator_impl));
-
-    impl->rule = rule;
-    impl->last = dtstart;
-    impl->dtstart = dtstart;
-    impl->days_index =0;
-    impl->occurrence_no = 0;
-    freq = impl->rule.freq;
-
-    /* Set up convienience pointers to make the code simpler. Allows
-       us to iterate through all of the BY* arrays in the rule. */
-
-    impl->by_ptrs[BY_MONTH]=impl->rule.by_month;
-    impl->by_ptrs[BY_WEEK_NO]=impl->rule.by_week_no;
-    impl->by_ptrs[BY_YEAR_DAY]=impl->rule.by_year_day;
-    impl->by_ptrs[BY_MONTH_DAY]=impl->rule.by_month_day;
-    impl->by_ptrs[BY_DAY]=impl->rule.by_day;
-    impl->by_ptrs[BY_HOUR]=impl->rule.by_hour;
-    impl->by_ptrs[BY_MINUTE]=impl->rule.by_minute;
-    impl->by_ptrs[BY_SECOND]=impl->rule.by_second;
-    impl->by_ptrs[BY_SET_POS]=impl->rule.by_set_pos;
-
-    memset(impl->orig_data,0,9);
-
-    /* Note which by rules had data in them when the iterator was
-       created. We can't use the actuall by_x arrays, because the
-       empty ones will be given default values later in this
-       routine. The orig_data array will be used later in has_by_data */
-
-    impl->orig_data[BY_MONTH]
-       = (impl->rule.by_month[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_WEEK_NO]
-      =(impl->rule.by_week_no[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_YEAR_DAY]
-    =(impl->rule.by_year_day[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_MONTH_DAY]
-    =(impl->rule.by_month_day[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_DAY]
-       = (impl->rule.by_day[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_HOUR]
-       = (impl->rule.by_hour[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_MINUTE]
-     = (impl->rule.by_minute[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_SECOND]
-     = (impl->rule.by_second[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-    impl->orig_data[BY_SET_POS]
-     = (impl->rule.by_set_pos[0]!=ICAL_RECURRENCE_ARRAY_MAX);
-
-
-    /* Check if the recurrence rule is legal */
-
-    /* If the BYYEARDAY appears, no other date rule part may appear.   */
-
-    if(icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_MONTH) ||
-       icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_WEEK_NO) ||
-       icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_MONTH_DAY) ||
-       icalrecur_two_byrule(impl,BY_YEAR_DAY,BY_DAY) ){
-
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(impl);
-       return 0;
-    }
-
-    /* BYWEEKNO and BYMONTH rule parts may not both appear.*/
-
-    if(icalrecur_two_byrule(impl,BY_WEEK_NO,BY_MONTH)){
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(impl);
-       return 0;
-    }
-
-    /* BYWEEKNO and BYMONTHDAY rule parts may not both appear.*/
-
-    if(icalrecur_two_byrule(impl,BY_WEEK_NO,BY_MONTH_DAY)){
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(impl);
-       return 0;
-    }
-
-
-    /*For MONTHLY recurrences (FREQ=MONTHLY) neither BYYEARDAY nor
-      BYWEEKNO may appear. */
-
-    if(freq == ICAL_MONTHLY_RECURRENCE && 
-       icalrecur_one_byrule(impl,BY_WEEK_NO)){
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(impl);
-       return 0;
-    }
-
-
-    /*For WEEKLY recurrences (FREQ=WEEKLY) neither BYMONTHDAY nor
-      BYYEARDAY may appear. */
-
-    if(freq == ICAL_WEEKLY_RECURRENCE && 
-       icalrecur_one_byrule(impl,BY_MONTH_DAY )) {
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(impl);
-       return 0;
-    }
-
-    /* BYYEARDAY may only appear in YEARLY rules */
-    if(freq != ICAL_YEARLY_RECURRENCE && 
-       icalrecur_one_byrule(impl,BY_YEAR_DAY )) {
-       icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-       free(impl);
-       return 0;
-    }
-
-    /* Rewrite some of the rules and set up defaults to make later
-       processing easier. Primarily, t involves copying an element
-       from the start time into the coresponding BY_* array when the
-       BY_* array is empty */
-
-
-    setup_defaults(impl,BY_SECOND,ICAL_SECONDLY_RECURRENCE,impl->dtstart.second,
-                  &(impl->last.second));
-
-    setup_defaults(impl,BY_MINUTE,ICAL_MINUTELY_RECURRENCE,impl->dtstart.minute,
-                  &(impl->last.minute));
-
-    setup_defaults(impl,BY_HOUR,ICAL_HOURLY_RECURRENCE,impl->dtstart.hour,
-                  &(impl->last.hour));
-
-    setup_defaults(impl,BY_MONTH_DAY,ICAL_DAILY_RECURRENCE,impl->dtstart.day,
-                  &(impl->last.day));
-
-    setup_defaults(impl,BY_MONTH,ICAL_MONTHLY_RECURRENCE,impl->dtstart.month,
-                  &(impl->last.month));
-
-
-    if(impl->rule.freq == ICAL_WEEKLY_RECURRENCE ){
-
-       if(impl->by_ptrs[BY_DAY][0] == ICAL_RECURRENCE_ARRAY_MAX){
-
-          /* Weekly recurrences with no BY_DAY data should occur on the
-             same day of the week as the start time . */
-          impl->by_ptrs[BY_DAY][0] = icaltime_day_of_week(impl->dtstart);
-
-       } else {
-         /* If there is BY_DAY data, then we need to move the initial
-            time to the start of the BY_DAY data. That is if the
-            start time is on a Wednesday, and the rule has
-            BYDAY=MO,WE,FR, move the initial time back to
-            monday. Otherwise, jumping to the next week ( jumping 7
-            days ahead ) will skip over some occurrences in the
-            second week. */
-         
-         /* This is probably a HACK. There should be some more
-             general way to solve this problem */
-
-         short dow = impl->by_ptrs[BY_DAY][0]-icaltime_day_of_week(impl->last);
-
-         if(dow < 0) {
-             /* initial time is after first day of BY_DAY data */
-
-             impl->last.day += dow;
-             impl->last = icaltime_normalize(impl->last);
-         }
-      }
-      
-
-    }
-
-    /* For YEARLY rule, begin by setting up the year days array */
-
-    if(impl->rule.freq == ICAL_YEARLY_RECURRENCE){
-        expand_year_days(impl,impl->last.year);
-    } 
-
-
-    /* If this is a monthly interval with by day data, then we need to
-       set the last value to the appropriate day of the month */
-
-    if(impl->rule.freq == ICAL_MONTHLY_RECURRENCE &&
-       has_by_data(impl,BY_DAY)) {
-
-       short dow = icalrecurrencetype_day_day_of_week(
-           impl->by_ptrs[BY_DAY][impl->by_indices[BY_DAY]]);  
-       short pos =  icalrecurrencetype_day_position(
-           impl->by_ptrs[BY_DAY][impl->by_indices[BY_DAY]]);  
-       
-       short poscount = 0;
-       days_in_month = 
-            icaltime_days_in_month(impl->last.month, impl->last.year); 
-       
-        if(pos >= 0){
-            /* Count up from the first day pf the month to find the
-               pos'th weekday of dow ( like the second monday. ) */
-
-            for(impl->last.day = 1;
-                impl->last.day <= days_in_month;
-                impl->last.day++){
-                
-                if(icaltime_day_of_week(impl->last) == dow){
-                    if(++poscount == pos || pos == 0){
-                        break;
-                    }
-                }
-            }
-        } else {
-            /* Count down from the last day pf the month to find the
-               pos'th weekday of dow ( like the second to last monday. ) */
-            pos = -pos;
-            for(impl->last.day = days_in_month;
-                impl->last.day != 0;
-                impl->last.day--){
-                
-                if(icaltime_day_of_week(impl->last) == dow){
-                    if(++poscount == pos ){
-                        break;
-                    }
-                }
-            }
-        }
-
-
-       if(impl->last.day > days_in_month || impl->last.day == 0){
-           icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR);
-           free(impl);
-           return 0;
-       }
-       
-    }
-
-    return impl;
-}
-
-
-void icalrecur_iterator_free(icalrecur_iterator* i)
-{
-    
-    struct icalrecur_iterator_impl* impl = 
-       (struct icalrecur_iterator_impl*)i;
-
-    icalerror_check_arg_rv((impl!=0),"impl");
-
-    free(impl);
-
-}
-
-
-void increment_year(struct icalrecur_iterator_impl* impl, int inc)
-{
-    impl->last.year+=inc;
-}
-
-/* Increment month is different that the other incement_* routines --
-   it figures out the interval for itself, and uses BYMONTH data if
-   available. */
-void increment_month(struct icalrecur_iterator_impl* impl)
-{
-    int years;
-
-     if(has_by_data(impl,BY_MONTH) ){
-         /* Ignore the frequency and use the byrule data */
-         
-         impl->by_indices[BY_MONTH]++;
-         
-         if (impl->by_ptrs[BY_MONTH][impl->by_indices[BY_MONTH]]
-             ==ICAL_RECURRENCE_ARRAY_MAX){
-             impl->by_indices[BY_MONTH] = 0;
-
-             increment_year(impl,1);
-             
-         }
-         
-         impl->last.month = 
-             impl->by_ptrs[BY_MONTH][impl->by_indices[BY_MONTH]];
-
-     } else {
-         
-         int inc;
-
-         if(impl->rule.freq == ICAL_MONTHLY_RECURRENCE){
-            inc =  impl->rule.interval;
-         } else {
-             inc = 1;
-         }
-
-         impl->last.month+=inc;
-         
-         /* Months are offset by one */
-         impl->last.month--;
-         
-         years = impl->last.month / 12;
-         
-         impl->last.month = impl->last.month % 12;
-         
-         impl->last.month++;
-         
-         if (years != 0){
-             increment_year(impl,years);
-         }
-     }
-}
-
-void increment_monthday(struct icalrecur_iterator_impl* impl, int inc)
-{
-    int i;
-
-    for(i=0; i<inc; i++){
-       
-       short days_in_month = 
-           icaltime_days_in_month(impl->last.month,impl->last.year);
-
-       impl->last.day++;
-       
-       if (impl->last.day > days_in_month){
-           impl->last.day = impl->last.day-days_in_month;
-           increment_month(impl);
-       }
-    }
-}
-
-
-void increment_hour(struct icalrecur_iterator_impl* impl, int inc)
-{
-    short days;
-
-    impl->last.hour+=inc;
-
-    days = impl->last.hour / 24;
-    impl->last.hour = impl->last.hour % 24;
-
-    if (impl->days != 0){
-       increment_monthday(impl,days);
-    }
-}
-
-void increment_minute(struct icalrecur_iterator_impl* impl, int inc)
-{
-    short hours;
-
-    impl->last.minute+=inc;
-
-    hours = impl->last.minute / 60;
-     impl->last.minute =  impl->last.minute % 60;
-
-     if (hours != 0){
-       increment_hour(impl,hours);
-    }
-
-}
-
-void increment_second(struct icalrecur_iterator_impl* impl, int inc)
-{
-    short minutes;
-
-    impl->last.second+=inc;
-    
-    minutes = impl->last.second / 60;
-    impl->last.second = impl->last.second % 60;
-    
-    if (minutes != 0)
-    {
-       increment_minute(impl, minutes);
-    }                 
-}
-
-#if 0
-#include "ical.h"
-void test_increment()
-{
-    struct icalrecur_iterator_impl impl;
-
-    impl.last =  icaltime_from_string("20000101T000000Z");
-
-    printf("Orig: %s\n",icaltime_as_ctime(impl.last));
-    
-    increment_second(&impl,5);
-    printf("+ 5 sec    : %s\n",icaltime_as_ctime(impl.last));
-
-    increment_second(&impl,355);
-    printf("+ 355 sec  : %s\n",icaltime_as_ctime(impl.last));
-
-    increment_minute(&impl,5);
-    printf("+ 5 min    : %s\n",icaltime_as_ctime(impl.last));
-
-    increment_minute(&impl,360);
-    printf("+ 360 min  : %s\n",icaltime_as_ctime(impl.last));
-    increment_hour(&impl,5);
-    printf("+ 5 hours  : %s\n",icaltime_as_ctime(impl.last));
-    increment_hour(&impl,43);
-    printf("+ 43 hours : %s\n",icaltime_as_ctime(impl.last));
-    increment_monthday(&impl,3);
-    printf("+ 3 days   : %s\n",icaltime_as_ctime(impl.last));
-    increment_monthday(&impl,600);
-    printf("+ 600 days  : %s\n",icaltime_as_ctime(impl.last));
-       
-}
-
-#endif 
-
-short next_second(struct icalrecur_iterator_impl* impl)
-{
-
-  short has_by_data = (impl->by_ptrs[BY_SECOND][0]!=ICAL_RECURRENCE_ARRAY_MAX);
-  short this_frequency = (impl->rule.freq == ICAL_SECONDLY_RECURRENCE);
-
-  short end_of_data = 0;
-
-  assert(has_by_data || this_frequency);
-
-  if(  has_by_data ){
-      /* Ignore the frequency and use the byrule data */
-
-      impl->by_indices[BY_SECOND]++;
-
-      if (impl->by_ptrs[BY_SECOND][impl->by_indices[BY_SECOND]]
-         ==ICAL_RECURRENCE_ARRAY_MAX){
-         impl->by_indices[BY_SECOND] = 0;
-
-         end_of_data = 1;
-      }
-
-
-      impl->last.second = 
-         impl->by_ptrs[BY_SECOND][impl->by_indices[BY_SECOND]];
-      
-     &