From 1a32d27f6e1042f69e74ee41e8a64031936b2636 Mon Sep 17 00:00:00 2001
From: nobody <nobody@localhost>
Date: Wed, 15 May 2002 16:19:25 +0000
Subject: This commit was manufactured by cvs2svn to create tag
 'GEDIT_1_121_1'.

svn path=/tags/GEDIT_1_121_1/; revision=16829
---
 libical/src/test/.cvsignore       |   18 -
 libical/src/test/Makefile.am      |   25 -
 libical/src/test/copycluster.c    |  130 --
 libical/src/test/findobj.c        |   72 -
 libical/src/test/icaltestparser.c |  122 --
 libical/src/test/process.c        |  446 -----
 libical/src/test/recur.c          |  120 --
 libical/src/test/regression.c     | 3605 -------------------------------------
 libical/src/test/storage.c        |  459 -----
 libical/src/test/stow.c           |  866 ---------
 libical/src/test/testclassify.c   |  156 --
 libical/src/test/testmime.c       |  340 ----
 libical/src/test/testvcal.c       |   64 -
 13 files changed, 6423 deletions(-)
 delete mode 100644 libical/src/test/.cvsignore
 delete mode 100644 libical/src/test/Makefile.am
 delete mode 100644 libical/src/test/copycluster.c
 delete mode 100644 libical/src/test/findobj.c
 delete mode 100644 libical/src/test/icaltestparser.c
 delete mode 100644 libical/src/test/process.c
 delete mode 100644 libical/src/test/recur.c
 delete mode 100644 libical/src/test/regression.c
 delete mode 100644 libical/src/test/storage.c
 delete mode 100644 libical/src/test/stow.c
 delete mode 100644 libical/src/test/testclassify.c
 delete mode 100644 libical/src/test/testmime.c
 delete mode 100644 libical/src/test/testvcal.c

(limited to 'libical/src/test')

diff --git a/libical/src/test/.cvsignore b/libical/src/test/.cvsignore
deleted file mode 100644
index ed72bfe59f..0000000000
--- a/libical/src/test/.cvsignore
+++ /dev/null
@@ -1,18 +0,0 @@
-*.la
-*.lo
-.libs
-Makefile
-Makefile.in
-.deps
-.libs
-copycluster 
-regression 
-parser 
-findobj 
-storage 
-stow 
-recur 
-testmime 
-testvcal
-
-
diff --git a/libical/src/test/Makefile.am b/libical/src/test/Makefile.am
deleted file mode 100644
index d4fa33c040..0000000000
--- a/libical/src/test/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-
-noinst_PROGRAMS = copycluster regression parser storage stow recur testmime testvcal process testclassify
-
-LDADD =  ../libicalss/.libs/libicalss.a ../libicalvcal/.libs/libicalvcal.a ../libical/.libs/libical.a 
-
-INCLUDES = 				\
-       -I. 				\
-       -I../libicalvcal 		\
-       -I$(srcdir)/../libicalvcal 	\
-       -I$(srcdir) 			\
-       -I../libical 			\
-       -I$(srcdir)/../libical 		\
-       -I../libicalss 			\
-       -I$(srcdir)/../libicalss           
-
-copycluster_SOURCES = copycluster.c
-regression_SOURCES = regression.c
-parser_SOURCES = icaltestparser.c
-storage_SOURCES = storage.c
-stow_SOURCES = stow.c
-testvcal_SOURCES = testvcal.c
-recur_SOURCES = recur.c 
-testmime_SOURCES = testmime.c
-process_SOURCES = process.c
-testclassify_SOURCES = testclassify.c
diff --git a/libical/src/test/copycluster.c b/libical/src/test/copycluster.c
deleted file mode 100644
index 4eefc37758..0000000000
--- a/libical/src/test/copycluster.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: copycluster.c
-  CREATOR: eric 15 January 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000 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 Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#include <stdio.h> /* for printf */
-#include "ical.h"
-#include "icalss.h"
-#include "icalfileset.h"
-#include <errno.h>
-#include <string.h> /* For strerror */
-#include <signal.h> /* for signal */
-#include <unistd.h> /* for alarm */
-#include "icalrestriction.h"
-
-static void sig_alrm(int i){
-    fprintf(stderr,"Could not get lock on file\n");
-    exit(1);
-}
-/* This program copies a file that holds iCal components to an other file. */
-
-
-void usage(char* arg0) {
-    printf("usage: %s cluster-file1 cluster-file2\n",arg0);
-}
-
-int main(int c, char *argv[]){
-
-    icalfileset *clusterin, *clusterout;
-    icalcomponent *itr;
-    int count=0;
-    int tostdout = 0;
-
-    if(c < 2 || c > 3){
-	usage(argv[0]);
-	exit(1);
-    }
-
-    if (c == 2){
-	tostdout = 1;
-    }
-
-
-    icalerror_set_error_state(ICAL_PARSE_ERROR, ICAL_ERROR_NONFATAL);
-
-
-    signal(SIGALRM,sig_alrm);
-
-    alarm(0);
-    clusterin = icalfileset_new(argv[1]);
-    alarm(0);
-
-    if (clusterin == 0){
-	printf("Could not open input cluster \"%s\"",argv[1]);
-	       
-	exit(1);
-    }
-
-    if (!tostdout){
-	clusterout = icalfileset_new(argv[2]);
-	if (clusterout == 0){
-	    printf("Could not open output cluster \"%s\"\n",argv[2]);
-	    exit(1);
-	}
-    }
-
-
-    for (itr = icalset_get_first_component(clusterin);
-	 itr != 0;
-	 itr = icalset_get_next_component(clusterin)){
-
-        icalerror_set_error_state(ICAL_BADARG_ERROR, ICAL_ERROR_NONFATAL);
-	icalrestriction_check(itr);
-        icalerror_set_error_state(ICAL_BADARG_ERROR, ICAL_ERROR_DEFAULT);
-
-	if (itr != 0){
-
-	    if(tostdout){
-
-		printf("--------------\n%s\n",icalcomponent_as_ical_string(itr));
-
-	    } else {
-
-		icalfileset_add_component(clusterout,
-					  icalcomponent_new_clone(itr));
-	    }
-	    
-	    count++;
-
-	} else {
-	    printf("Got NULL component");
-	}
-    }
-
-
-    printf("Transfered %d components\n",count);
-
-    icalfileset_free(clusterin);
-
-    if (!tostdout){
-	icalfileset_mark(clusterout);
-	icalfileset_free(clusterout);
-    }
-
-     return 0;
-}
-
-
diff --git a/libical/src/test/findobj.c b/libical/src/test/findobj.c
deleted file mode 100644
index c31101c33d..0000000000
--- a/libical/src/test/findobj.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: findobj.c
-  CREATOR: eric 11 February 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000 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 Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#include <stdio.h> /* for printf */
-#include "ical.h"
-#include "icalcalendar.h"
-#include "icaldirset.h"
-#include <errno.h>
-#include <string.h> /* For strerror */
-#include "icalrestriction.h"
-
-/* This program finds an object stored in a calendar */
-
-void usage(char* arg0) {
-    printf("usage: %s calendar-dir uid\n",arg0);
-}
-
-int main(int c, char *argv[]){
-
-    icalcalendar *cal;
-    icaldirset *booked;
-    icalcomponent *itr;
-
-    if(c < 2 || c > 3){
-	usage(argv[0]);
-	exit(1);
-    }
-
-    cal = icalcalendar_new(argv[1]);
-
-    if(cal == 0){
-	fprintf(stderr,"%s: error in opening calendar \"%s\": %s. errno is \"%s\"\n",
-		argv[0],argv[1],icalerror_strerror(icalerrno),
-		strerror(errno));
-    }
-
-    booked = icalcalendar_get_booked(cal);
-
-    itr = icaldirset_fetch(booked,argv[2]);
-
-
-    if(itr != 0){
-	printf("%s",icalcomponent_as_ical_string(itr));
-    }
-
-    return 0;
-}
-
diff --git a/libical/src/test/icaltestparser.c b/libical/src/test/icaltestparser.c
deleted file mode 100644
index e5973e0d4a..0000000000
--- a/libical/src/test/icaltestparser.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: icaltestparser.c
-  CREATOR: eric 20 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.
-
-  The original author is Eric Busboom
-  The original code is icaltestparser.c
-
- 
- (C) COPYRIGHT 1999 The Software Studio. 
- http://www.softwarestudio.org
-
- ======================================================================*/
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include "ical.h"
-
-#include <stdlib.h>
-
-char str[] = "BEGIN:VCALENDAR\
-PRODID:\"-//RDU Software//NONSGML HandCal//EN\"\
-VERSION:2.0\
-BEGIN:VTIMEZONE\
-TZID:US-Eastern\
-BEGIN:STANDARD\
-DTSTART:19990404T020000\
-RDATE:19990u404xT020000\
-TZOFFSETFROM:-0500\
-TZOFFSETTO:-0400\
-END:STANDARD\
-BEGIN:DAYLIGHT\
-DTSTART:19990404T020000\
-RDATE:19990404T020000\
-TZOFFSETFROM:-0500\
-TZOFFSETTO:-0400\
-TZNAME:EDT\
-Dkjhgri:derhvnv;\
-BEGIN:dfkjh\
-END:dfdfkjh\
-END:DAYLIGHT\
-END:VTIMEZONE\
-BEGIN:VEVENT\
-GEO:Bongo\
-DTSTAMP:19980309T231000Z\
-UID:guid-1.host1.com\
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com\
-ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP\
- :MAILTO:employee-A@host.com\
-DESCRIPTION:Project XYZ Review Meeting\
-CATEGORIES:MEETING\
-CLASS:PUBLIC\
-CREATED:19980309T130000Z\
-SUMMARY:XYZ Project Review\
-DTSTART;TZID=US-Eastern:19980312T083000\
-DTEND;TZID=US-Eastern:19980312T093000\
-LOCATION:1CP Conference Room 4350\
-END:VEVENT\
-END:VCALENDAR\
-";
-
-extern int yydebug;
-
-/* Have the parser fetch data from stdin */
-
-char* read_stream(char *s, size_t size, void *d)
-{
-  char *c = fgets(s,size, (FILE*)d);
-
-  return c;
-
-}
-
-
-
-int main(int argc, char* argv[])
-{
-
-    char* line; 
-    FILE* stream;
-    icalcomponent *c; 
-    icalparser *parser = icalparser_new();
-
-    stream = fopen(argv[1],"r");
-
-    assert(stream != 0);
-
-    icalparser_set_gen_data(parser,stream);
-
-    do{
-    
-	line = icalparser_get_line(parser,read_stream);
-
-	c = icalparser_add_line(parser,line);
-
-
-	if (c != 0){
-	    /*icalcomponent_convert_errors(c);*/
-	    printf("%s",icalcomponent_as_ical_string(c));
-	    printf("\n---------------\n");
-	    icalcomponent_free(c);
-	}
-
-    } while ( line != 0);
-
-    return 0;
- }
diff --git a/libical/src/test/process.c b/libical/src/test/process.c
deleted file mode 100644
index 56f1c65fb1..0000000000
--- a/libical/src/test/process.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: process.c
-  CREATOR: eric 11 February 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000 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.
- 
- ======================================================================*/
-
-#include <stdio.h> /* for printf */
-#include "ical.h"
-#include "icalss.h"
-#include <errno.h>
-#include <string.h> /* For strerror */
-#include <stdlib.h> /* for free */
-
-struct class_map {
-	ical_class class;
-	char *str;
-} class_map[] = {
-    {ICAL_NO_CLASS,"No class"},
-    {ICAL_PUBLISH_NEW_CLASS,"New Publish"},
-    {ICAL_PUBLISH_UPDATE_CLASS,"New Publish"},
-    {ICAL_REQUEST_NEW_CLASS,"New request"},
-    {ICAL_REQUEST_UPDATE_CLASS,"Update"},
-    {ICAL_REQUEST_RESCHEDULE_CLASS,"Reschedule"},
-    {ICAL_REQUEST_DELEGATE_CLASS,"Delegate"},
-    {ICAL_REQUEST_NEW_ORGANIZER_CLASS,"New Organizer"},
-    {ICAL_REQUEST_FORWARD_CLASS,"Forward"},
-    {ICAL_REQUEST_STATUS_CLASS,"Status request"},
-    {ICAL_REPLY_ACCEPT_CLASS,"Accept reply"},
-    {ICAL_REPLY_DECLINE_CLASS,"Decline reply"},
-    {ICAL_REPLY_CRASHER_ACCEPT_CLASS,"Crasher's accept reply"},
-    {ICAL_REPLY_CRASHER_DECLINE_CLASS,"Crasher's decline reply"},
-    {ICAL_ADD_INSTANCE_CLASS,"Add instance"},
-    {ICAL_CANCEL_EVENT_CLASS,"Cancel event"},
-    {ICAL_CANCEL_INSTANCE_CLASS,"Cancel instance"},
-    {ICAL_CANCEL_ALL_CLASS,"Cancel all instances"},
-    {ICAL_REFRESH_CLASS,"Refresh"},
-    {ICAL_COUNTER_CLASS,"Counter"},
-    {ICAL_DECLINECOUNTER_CLASS,"Decline counter"},
-    {ICAL_MALFORMED_CLASS,"Malformed"}, 
-    {ICAL_OBSOLETE_CLASS,"Obsolete"},
-    {ICAL_MISSEQUENCED_CLASS,"Missequenced"},
-    {ICAL_UNKNOWN_CLASS,"Unknown"}
-};
-
-char* find_class_string(ical_class class)
-{
-    int i; 
-
-    for (i = 0;class_map[i].class != ICAL_UNKNOWN_CLASS;i++){
-	if (class_map[i].class == class){
-	    return class_map[i].str;
-	}
-    }
-
-    return "Unknown";
-}
-
-void send_message(icalcomponent *reply,const char* this_user)
-{
-    printf("From: %s\n\n%s\n",this_user,icalcomponent_as_ical_string(reply));
-    
-
-}
-
-
-int main(int argc, char* argv[])
-{
-    icalcomponent *c, *next_c;
-    int i=0;
-    char *class_string;
-    int dont_remove;
-    
-    icalset* f = icalset_new_file("../../test-data/process-incoming.ics");
-    icalset* trash = icalset_new_file("trash.ics");
-    icalset* cal = icalset_new_file("../../test-data/process-calendar.ics");
-    icalset* out = icalset_new_file("outgoing.ics");
-
-    const char* this_user = "alice@cal.softwarestudio.org";
-
-    assert(f!= 0);
-    assert(cal!=0);
-    assert(trash!=0);
-    assert(out!=0);
-
-
-    /* Foreach incoming message */
-    for(c=icalset_get_first_component(f);c!=0;c = next_c){
-	
-	ical_class class;
-	icalcomponent *match;
-	icalcomponent *inner; 
-	icalcomponent *reply = 0;
-
-	assert(c!=0);
-
-	inner = icalcomponent_get_first_real_component(c);
-
-	i++;
-	reply = 0;
-	dont_remove = 0;
-
-	if(inner == 0){
-	    printf("Bad component, no inner\n %s\n",
-		   icalcomponent_as_ical_string(c));
-	    continue;
-	}
-
-	/* Find a booked component that is matched to the incoming
-	   message, based on the incoming component's UID, SEQUENCE
-	   and RECURRENCE-ID*/
-
-	match = icalset_fetch_match(cal,c);
-
-	class = icalclassify(c,match,this_user);
-
-	class_string = find_class_string(class);
-
-	/* Print out the notes associated with the incoming component
-           and the matched component in the */
-	{
-	    const char *c_note=0;
-	    const char *m_note=0;
-	    icalproperty *p;
-
-	    for(p = icalcomponent_get_first_property(c,ICAL_X_PROPERTY);
-		p!= 0;
-		p = icalcomponent_get_next_property(c,ICAL_X_PROPERTY)){
-
-		if(strcmp(icalproperty_get_x_name(p),"X-LIC-NOTE")==0){
-		    c_note = icalproperty_get_x(p);
-		}
-	    }
-	   
-	    if (match != 0){
-		for(p = icalcomponent_get_first_property(match,
-							 ICAL_X_PROPERTY);
-		    p!= 0;
-		    p = icalcomponent_get_next_property(match,
-							ICAL_X_PROPERTY)){
-		    if(strcmp(icalproperty_get_x_name(p),"X-LIC-NOTE")==0){
-			m_note = icalproperty_get_x(p);
-		    }
-		}
-	    }
-		
-	    if(c_note != 0){
-		printf("Incoming: %s\n",c_note);
-	    }
-	    if(m_note != 0){
-		printf("Match   : %s\n",m_note);
-	    }		
-	}
-
-	/* Main processing structure */
-
-	switch (class){
-	    case ICAL_NO_CLASS: { 
-		char temp[1024];
-		/* Huh? Return an error to sender */
-		icalrestriction_check(c);
-		icalcomponent_convert_errors(c);
-
-		snprintf(temp,1024,"I can't understand the component you sent. \n Here is the component you sent, possibly with error messages:\n %s",icalcomponent_as_ical_string(c));
-
-		reply = icalmessage_new_error_reply(
-		    c,
-		    this_user,
-		    temp,
-		    "",
-		    ICAL_UNKNOWN_STATUS
-		    );
-		    
-			   
-
-		break; 
-	    }
-	    case ICAL_PUBLISH_NEW_CLASS: { 
-		
-		/* Don't accept published events from anyone but
-		   self. If self, fall through to ICAL_REQUEST_NEW_CLASS */
-
-		
-
-	    }
-	    case ICAL_REQUEST_NEW_CLASS: { 
-		
-		/* Book the new component if it does not overlap
-		   anything. If the time is busy and the start time is
-		   an even modulo 4, delegate to
-		   bob@cal.softwarestudio.org. If the time is busy and
-		   is 1 modulo 4, counterpropose for the first
-		   available free time. Otherwise, deline the meeting */
-
-		icalcomponent *overlaps;
-		overlaps = icalclassify_find_overlaps(cal,c);
-
-		if(overlaps == 0){
-		    /* No overlaps, book the meeting */
-/*		    icalset_add_component(cal,icalcomponent_new_clone(c));*/
-
-		    /* Return a reply */
-		    reply = icalmessage_new_accept_reply(c,this_user,
-				  	 "I can make it to this meeting");
-
-		    icalset_add_component(out,reply);
-		  
-		} else {
-		    /* There was a conflict, so delegate, counterpropose
-		       or decline it */
-		    struct icaltimetype dtstart 
-			= icalcomponent_get_dtstart(c);
-		  
-		    if(dtstart.hour%4 == 0){  
-			/* Delegate the meeting */
-			reply = icalmessage_new_delegate_reply(c, 
-			  this_user,
-            		  "bob@cal.softwarestudio.org",
-			  "Unfortunately, I have another commitment that \
-conflicts with this meeting. I am delegating my attendance to Bob. ");
-
-			icalset_add_component(out,reply);
-		      
-		    } else if (dtstart.hour%4 == 1) {
-			/* Counter propose to next available time */
-			icalcomponent *newc;
-			struct icalperiodtype next_time;
-
-			icalspanlist *spanl = 
-			    icalspanlist_new(cal,dtstart,
-					     icaltime_null_time());
-
-			next_time = icalspanlist_next_free_time(
-			   spanl,icalcomponent_get_dtstart(c));
-
-			newc = icalcomponent_new_clone(c);
-			
-			icalcomponent_set_dtstart(newc,next_time.start);
-			
-
-			/* Hack, the duration of the counterproposed
-                           meeting may be longer than the free time
-                           available */
-			icalcomponent_set_duration(newc,
-			     icalcomponent_get_duration(c));
-			
-			reply = icalmessage_new_counterpropose_reply(c, 
-								     newc,
-								     this_user,
-			   "Unfortunately, I have another commitment that \
-conflicts with this meeting. I am proposing a time that works better for me.");
-		      
-			icalset_add_component(out,reply);
-
-		    } else {
-			/* Decline the meeting */
-		      
-			reply = icalmessage_new_decline_reply(c,
-							      this_user,
-					  "I can't make it to this meeting");
-
-			icalset_add_component(out,reply);
-
-		    }
-
-		  
-		}
-		break; 
-	    }
-	    case ICAL_PUBLISH_FREEBUSY_CLASS: {
-		/* Store the busy time information in a file named after
-		   the sender */
-		break;
-	    }
-	    
-	    case ICAL_PUBLISH_UPDATE_CLASS: { 
-		/* Only accept publish updates from self. If self, fall
-		   throught to ICAL_REQUEST_UPDATE_CLASS */
-	    }
-
-	    case ICAL_REQUEST_UPDATE_CLASS: { 
-		/* always accept the changes */
-		break; 
-	    }
-	  
-	    case ICAL_REQUEST_RESCHEDULE_CLASS: { 
-		/* Use same rules as REQUEST_NEW */
-		icalcomponent *overlaps;
-		overlaps = icalclassify_find_overlaps(cal,c);
-
-		break; 
-	    }
-	    case ICAL_REQUEST_DELEGATE_CLASS: { 
-	      
-		break; 
-	    }
-	    case ICAL_REQUEST_NEW_ORGANIZER_CLASS: { 
-		break; 
-	    }
-	    case ICAL_REQUEST_FORWARD_CLASS: { 
-		break; 
-	    }
-	    case ICAL_REQUEST_STATUS_CLASS: { 
-		break; 
-	    }
-
-	    case ICAL_REQUEST_FREEBUSY_CLASS: { 
-		break; 
-	    }
-	    case ICAL_REPLY_ACCEPT_CLASS: { 
-		/* Change the PARTSTAT of the sender */
-		break; 
-	    }
-	    case ICAL_REPLY_DECLINE_CLASS: { 
-		/* Change the PARTSTAT of the sender */
-		break; 
-	    }
-	    case ICAL_REPLY_CRASHER_ACCEPT_CLASS: { 
-		/* Add the crasher to the ATTENDEE list with the
-		   appropriate PARTSTAT */
-		break; 
-	    }
-	    case ICAL_REPLY_CRASHER_DECLINE_CLASS: { 
-		/* Add the crasher to the ATTENDEE list with the
-		   appropriate PARTSTAT */
-		break; 
-	    }
-	    case ICAL_ADD_INSTANCE_CLASS: { 
-		break; 
-	    }
-	    case ICAL_CANCEL_EVENT_CLASS: { 
-		/* Remove the component */
-		break; 
-	    }
-	    case ICAL_CANCEL_INSTANCE_CLASS: { 
-		break; 
-	    }
-	    case ICAL_CANCEL_ALL_CLASS: { 
-		/* Remove the component */	      
-		break; 
-	    }
-	    case ICAL_REFRESH_CLASS: { 
-		/* Resend the latest copy of the request */
-		break; 
-	    }
-	    case ICAL_COUNTER_CLASS: { 
-		break; 
-	    }
-	    case ICAL_DECLINECOUNTER_CLASS: { 
-		break; 
-	    }
-	    case ICAL_MALFORMED_CLASS: { 
-		/* Send back an error */
-		break; 
-	    } 
-	    case ICAL_OBSOLETE_CLASS: { 
-		printf(" ** Got an obsolete component:\n%s",
-		       icalcomponent_as_ical_string(c));
-		/* Send back an error */
-		break; 
-	    } 
-	    case ICAL_MISSEQUENCED_CLASS: { 
-		printf(" ** Got a missequenced component:\n%s",
-		       icalcomponent_as_ical_string(c));
-		/* Send back an error */
-		break; 
-	    }
-	    case ICAL_UNKNOWN_CLASS: { 
-		printf(" ** Don't know what to do with this component:\n%s",
-		       icalcomponent_as_ical_string(c));
-		/* Send back an error */
-		break; 
-	    }
-	}
-
-#if(0)
-	if (reply != 0){	
-	    
-	    /* Don't send the reply if the RSVP parameter indicates not to*/
-	    icalcomponent *reply_inner;
-	    icalproperty *attendee;
-	    icalparameter *rsvp;
-	    
-	    reply_inner = icalcomponent_get_first_real_component(reply);
-	    attendee = icalcomponent_get_first_property(reply_inner,
-							ICAL_ATTENDEE_PROPERTY);
-	    rsvp = icalproperty_get_first_parameter(attendee,
-						    ICAL_RSVP_PARAMETER);
-	    
-	    if(rsvp == 0 || icalparameter_get_rsvp(rsvp) == 1){
-		icalrestriction_check(reply);
-		send_message(reply,this_user);
-	    }
-	    
-	    icalcomponent_free(reply);
-	}
-#endif 
-
-	if(reply !=0){
-	    printf("%s\n",icalcomponent_as_ical_string(reply));
-	}
-	
-	next_c =   icalset_get_next_component(f);
-	
-	if(dont_remove == 0){
-	    /*icalset_remove_component(f,c);
-	      icalset_add_component(trash,c);*/
-	}
-    }
-
-#if (0)
-        
-    for(c = icalset_get_first_component(out);
-	c!=0;
-	c = icalset_get_next_component(out)){
-	
-	printf("%s",icalcomponent_as_ical_string(c));
-
-    }
-#endif
-
-    icalset_free(f);
-    icalset_free(trash);
-    icalset_free(cal);
-    icalset_free(out);
-
-    return 0;
-}
-
-
diff --git a/libical/src/test/recur.c b/libical/src/test/recur.c
deleted file mode 100644
index f4d9a38647..0000000000
--- a/libical/src/test/recur.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: recur.c
-  CREATOR: ebusboom 8jun00
-  
-  DESCRIPTION:
-
-  Test program for expanding recurrences. Run as:
-
-     ./recur ../../test-data/recur.txt
-
-  
-  (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.
-
-  ======================================================================*/
-
-#include "ical.h"
-#include <assert.h>
-#include <string.h> /* for strdup */
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for printf */
-#include <time.h> /* for time() */
-#include <signal.h> /* for signal */
-#include <unistd.h> /* for alarm */
-#include "icalmemory.h"
-#include "icaldirset.h"
-#include "icalfileset.h"
-
-static void sig_alrm(int i){
-    fprintf(stderr,"Could not get lock on file\n");
-    exit(1);
-}
-
-int main(int argc, char *argv[])
-{
-    icalfileset *cin;
-    struct icaltimetype start, next;
-    icalcomponent *itr;
-    icalproperty *desc, *dtstart, *rrule;
-    struct icalrecurrencetype recur;
-    icalrecur_iterator* ritr;
-    time_t tt;
-    char* file; 
-
-    icalerror_set_error_state(ICAL_PARSE_ERROR, ICAL_ERROR_NONFATAL);
-
-    signal(SIGALRM,sig_alrm);
-
-
-    if (argc <= 1){
-	file = "../../test-data/recur.txt";
-    } else if (argc == 2){
-	file = argv[1];
-    } else {
-	fprintf(stderr,"usage: recur [input file]\n");
-	exit(1);
-    }
-
-    alarm(300); /* to get file lock */
-    cin = icalfileset_new(file);
-    alarm(0);
-    
-    if(cin == 0){
-	fprintf(stderr,"recur: can't open file %s\n",file);
-	exit(1);
-    }
-
-
-    for (itr = icalfileset_get_first_component(cin);
-         itr != 0;
-         itr = icalfileset_get_next_component(cin)){
-
-	desc = icalcomponent_get_first_property(itr,ICAL_DESCRIPTION_PROPERTY);
-	dtstart = icalcomponent_get_first_property(itr,ICAL_DTSTART_PROPERTY);
-	rrule = icalcomponent_get_first_property(itr,ICAL_RRULE_PROPERTY);
-
-	if (desc == 0 || dtstart == 0 || rrule == 0){
-	    printf("\n******** Error in input component ********\n");
-	    printf("The following component is malformed:\n %s\n",
-		   icalcomponent_as_ical_string(itr));
-	    continue;
-	}
-
-	printf("\n\n#### %s\n",icalproperty_get_description(desc));
-	printf("#### %s\n",icalvalue_as_ical_string(icalproperty_get_value(rrule)));
-	recur = icalproperty_get_rrule(rrule);
-	start = icalproperty_get_dtstart(dtstart);
-	
-	ritr = icalrecur_iterator_new(recur,start);
-	
-	tt = icaltime_as_timet(start);
-
-	printf("#### %s\n",ctime(&tt ));
-
-	for(ritr = icalrecur_iterator_new(recur,start),
-		next = icalrecur_iterator_next(ritr); 
-	    !icaltime_is_null_time(next);
-	    next = icalrecur_iterator_next(ritr)){
-	    
-	    tt = icaltime_as_timet(next);
-	    
-	    printf("  %s",ctime(&tt ));		
-	    
-	}
-
-    }
-
-    return 0;
-}
diff --git a/libical/src/test/regression.c b/libical/src/test/regression.c
deleted file mode 100644
index 08696207f2..0000000000
--- a/libical/src/test/regression.c
+++ /dev/null
@@ -1,3605 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: regression.c
-  CREATOR: eric 03 April 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 regression.c
-
-    
-  ======================================================================*/
-
-#include "ical.h"
-#include "icalss.h"
-
-#include <assert.h>
-#include <string.h> /* for strdup */
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for printf */
-#include <time.h> /* for time() */
-#include <unistd.h> /* for unlink, fork */
-#include <sys/wait.h> /* For waitpid */
-#include <sys/types.h> /* For wait pid */
-#include <sys/time.h> /* for select */
-
-
-/* For GNU libc, strcmp appears to be a macro, so using strcmp in
- assert results in incomprehansible assertion messages. This
- eliminates the problem */
-
-int regrstrcmp(const char* a, const char* b){
-    return strcmp(a,b);
-}
-
-/* This example creates and minipulates the ical object that appears
- * in rfc 2445, page 137 */
-
-char str[] = "BEGIN:VCALENDAR\
-PRODID:\"-//RDU Software//NONSGML HandCal//EN\"\
-VERSION:2.0\
-BEGIN:VTIMEZONE\
-TZID:US-Eastern\
-BEGIN:STANDARD\
-DTSTART:19981025T020000\
-RDATE:19981025T020000\
-TZOFFSETFROM:-0400\
-TZOFFSETTO:-0500\
-TZNAME:EST\
-END:STANDARD\
-BEGIN:DAYLIGHT\
-DTSTART:19990404T020000\
-RDATE:19990404T020000\
-TZOFFSETFROM:-0500\
-TZOFFSETTO:-0400\
-TZNAME:EDT\
-END:DAYLIGHT\
-END:VTIMEZONE\
-BEGIN:VEVENT\
-DTSTAMP:19980309T231000Z\
-UID:guid-1.host1.com\
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com\
-ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:MAILTO:employee-A@host.com\
-DESCRIPTION:Project XYZ Review Meeting\
-CATEGORIES:MEETING\
-CLASS:PUBLIC\
-CREATED:19980309T130000Z\
-SUMMARY:XYZ Project Review\
-DTSTART;TZID=US-Eastern:19980312T083000\
-DTEND;TZID=US-Eastern:19980312T093000\
-LOCATION:1CP Conference Room 4350\
-END:VEVENT\
-BEGIN:BOOGA\
-DTSTAMP:19980309T231000Z\
-X-LIC-FOO:Booga\
-DTSTOMP:19980309T231000Z\
-UID:guid-1.host1.com\
-END:BOOGA\
-END:VCALENDAR";
-
-
-icalcomponent* create_simple_component()
-{
-
-    icalcomponent* calendar;
-    struct icalperiodtype rtime;
-
-    rtime.start = icaltime_from_timet( time(0),0);
-    rtime.end = icaltime_from_timet( time(0),0);
-
-    rtime.end.hour++;
-
-
-
-    /* Create calendar and add properties */
-    calendar = icalcomponent_new(ICAL_VCALENDAR_COMPONENT);
-
-    
-    icalcomponent_add_property(
-	calendar,
-	icalproperty_new_version("2.0")
-	);
-
-    printf("%s\n",icalcomponent_as_ical_string(calendar));
- 
-    return calendar;
-	   
-}
-
-/* Create a new component */
-icalcomponent* create_new_component()
-{
-
-    icalcomponent* calendar;
-    icalcomponent* timezone;
-    icalcomponent* tzc;
-    icalcomponent* event;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0);
-    struct icaldatetimeperiodtype rtime;
-    icalproperty* property;
-
-    rtime.period.start = icaltime_from_timet( time(0),0);
-    rtime.period.end = icaltime_from_timet( time(0),0);
-    rtime.period.end.hour++;
-    rtime.time = icaltime_null_time();
-
-
-
-    /* Create calendar and add properties */
-    calendar = icalcomponent_new(ICAL_VCALENDAR_COMPONENT);
-
-    
-    icalcomponent_add_property(
-	calendar,
-	icalproperty_new_version("2.0")
-	);
-    
-    icalcomponent_add_property(
-	calendar,
-	icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN")
-	);
-    
-    /* Create a timezone object and add it to the calendar */
-
-    timezone = icalcomponent_new(ICAL_VTIMEZONE_COMPONENT);
-
-    icalcomponent_add_property(
-	timezone,
-	icalproperty_new_tzid("US_Eastern")
-	);
-
-    /* Add a sub-component of the timezone */
-    tzc = icalcomponent_new(ICAL_XDAYLIGHT_COMPONENT);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_dtstart(atime)
-	);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_rdate(rtime)
-	);
-	    
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_tzoffsetfrom(-4.0)
-	);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_tzoffsetto(-5.0)
-	);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_tzname("EST")
-	);
-
-    icalcomponent_add_component(timezone,tzc);
-
-    icalcomponent_add_component(calendar,timezone);
-
-    /* Add a second subcomponent */
-    tzc = icalcomponent_new(ICAL_XSTANDARD_COMPONENT);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_dtstart(atime)
-	);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_rdate(rtime)
-	);
-	    
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_tzoffsetfrom(-4.0)
-	);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_tzoffsetto(-5.0)
-	);
-
-    icalcomponent_add_property(
-	tzc, 
-	icalproperty_new_tzname("EST")
-	);
-
-    icalcomponent_add_component(timezone,tzc);
-
-    /* Add an event */
-
-    event = icalcomponent_new(ICAL_VEVENT_COMPONENT);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_dtstamp(atime)
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_uid("guid-1.host1.com")
-	);
-
-    /* add a property that has parameters */
-    property = icalproperty_new_organizer("mrbig@host.com");
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_role(ICAL_ROLE_CHAIR)
-	);
-
-    icalcomponent_add_property(event,property);
-
-    /* add another property that has parameters */
-    property = icalproperty_new_attendee("employee-A@host.com");
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT)
-	);
-
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_rsvp(ICAL_RSVP_TRUE)
-	);
-
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_cutype(ICAL_CUTYPE_GROUP)
-	);
-
-    icalcomponent_add_property(event,property);
-
-
-    /* more properties */
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_description("Project XYZ Review Meeting")
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_categories("MEETING")
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_class("PUBLIC")
-	);
-    
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_created(atime)
-	);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_summary("XYZ Project Review")
-	);
-
-
-    property = icalproperty_new_dtstart(atime);
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_tzid("US-Eastern")
-	);
-
-    icalcomponent_add_property(event,property);
-
-
-    property = icalproperty_new_dtend(atime);
-    
-    icalproperty_add_parameter(
-	property,
-	icalparameter_new_tzid("US-Eastern")
-	);
-
-    icalcomponent_add_property(event,property);
-
-    icalcomponent_add_property(
-	event,
-	icalproperty_new_location("1CP Conference Room 4350")
-	);
-
-    icalcomponent_add_component(calendar,event);
-
-    printf("%s\n",icalcomponent_as_ical_string(calendar));
-
-    icalcomponent_free(calendar);
-
-    return 0;
-}
-
-
-/* Create a new component, using the va_args list */
-
-icalcomponent* create_new_component_with_va_args()
-{
-
-    icalcomponent* calendar;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0);
-    struct icaldatetimeperiodtype rtime;
-    
-    rtime.period.start = icaltime_from_timet( time(0),0);
-    rtime.period.end = icaltime_from_timet( time(0),0);
-    rtime.period.end.hour++;
-    rtime.time = icaltime_null_time();
-
-    calendar = 
-	icalcomponent_vanew(
-	    ICAL_VCALENDAR_COMPONENT,
-	    icalproperty_new_version("2.0"),
-	    icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN"),
-	    icalcomponent_vanew(
-		ICAL_VTIMEZONE_COMPONENT,
-		icalproperty_new_tzid("US_Eastern"),
-		icalcomponent_vanew(
-		    ICAL_XDAYLIGHT_COMPONENT,
-		    icalproperty_new_dtstart(atime),
-		    icalproperty_new_rdate(rtime),
-		    icalproperty_new_tzoffsetfrom(-4.0),
-		    icalproperty_new_tzoffsetto(-5.0),
-		    icalproperty_new_tzname("EST"),
-		    0
-		    ),
-		icalcomponent_vanew(
-		    ICAL_XSTANDARD_COMPONENT,
-		    icalproperty_new_dtstart(atime),
-		    icalproperty_new_rdate(rtime),
-		    icalproperty_new_tzoffsetfrom(-5.0),
-		    icalproperty_new_tzoffsetto(-4.0),
-		    icalproperty_new_tzname("EST"),
-		    0
-		    ),
-		0
-		),
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,
-		icalproperty_new_dtstamp(atime),
-		icalproperty_new_uid("guid-1.host1.com"),
-		icalproperty_vanew_organizer(
-		    "mrbig@host.com",
-		    icalparameter_new_role(ICAL_ROLE_CHAIR),
-		    0
-		    ),
-		icalproperty_vanew_attendee(
-		    "employee-A@host.com",
-		    icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT),
-		    icalparameter_new_rsvp(ICAL_RSVP_TRUE),
-		    icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
-		    0
-		    ),
-		icalproperty_new_description("Project XYZ Review Meeting"),
-		icalproperty_new_categories("MEETING"),
-		icalproperty_new_class("PUBLIC"),
-		icalproperty_new_created(atime),
-		icalproperty_new_summary("XYZ Project Review"),
-		icalproperty_vanew_dtstart(
-		    atime,
-		    icalparameter_new_tzid("US-Eastern"),
-		    0
-		    ),
-		icalproperty_vanew_dtend(
-		    atime,
-		    icalparameter_new_tzid("US-Eastern"),
-		    0
-		    ),
-		icalproperty_new_location("1CP Conference Room 4350"),
-		0
-		),
-	    0
-	    );
-	
-    printf("%s\n",icalcomponent_as_ical_string(calendar));
-    
-
-    icalcomponent_free(calendar);
-
-    return 0;
-}
-
-
-/* Return a list of all attendees who are required. */
-   
-char** get_required_attendees(icalproperty* event)
-{
-    icalproperty* p;
-    icalparameter* parameter;
-
-    char **attendees;
-    int max = 10;
-    int c = 0;
-
-    attendees = malloc(max * (sizeof (char *)));
-
-    assert(event != 0);
-    assert(icalcomponent_isa(event) == ICAL_VEVENT_COMPONENT);
-    
-    for(
-	p = icalcomponent_get_first_property(event,ICAL_ATTENDEE_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(event,ICAL_ATTENDEE_PROPERTY)
-	) {
-	
-	parameter = icalproperty_get_first_parameter(p,ICAL_ROLE_PARAMETER);
-
-	if ( icalparameter_get_role(parameter) == ICAL_ROLE_REQPARTICIPANT) 
-	{
-	    attendees[c++] = icalmemory_strdup(icalproperty_get_attendee(p));
-
-            if (c >= max) {
-                max *= 2; 
-                attendees = realloc(attendees, max * (sizeof (char *)));
-            }
-
-	}
-    }
-
-    return attendees;
-}
-
-/* If an attendee has a PARTSTAT of NEEDSACTION or has no PARTSTAT
-   parameter, change it to TENTATIVE. */
-   
-void update_attendees(icalproperty* event)
-{
-    icalproperty* p;
-    icalparameter* parameter;
-
-
-    assert(event != 0);
-    assert(icalcomponent_isa(event) == ICAL_VEVENT_COMPONENT);
-    
-    for(
-	p = icalcomponent_get_first_property(event,ICAL_ATTENDEE_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(event,ICAL_ATTENDEE_PROPERTY)
-	) {
-	
-	parameter = icalproperty_get_first_parameter(p,ICAL_PARTSTAT_PARAMETER);
-
-	if (parameter == 0) {
-
-	    icalproperty_add_parameter(
-		p,
-		icalparameter_new_partstat(ICAL_PARTSTAT_TENTATIVE)
-		);
-
-	} else if (icalparameter_get_partstat(parameter) == ICAL_PARTSTAT_NEEDSACTION) {
-
-	    icalproperty_remove_parameter(p,ICAL_PARTSTAT_PARAMETER);
-	    
-	    icalparameter_free(parameter);
-
-	    icalproperty_add_parameter(
-		p,
-		icalparameter_new_partstat(ICAL_PARTSTAT_TENTATIVE)
-		);
-	}
-
-    }
-}
-
-
-void test_values()
-{
-    icalvalue *v; 
-    icalvalue *copy; 
-
-    v = icalvalue_new_caladdress("cap://value/1");
-    printf("caladdress 1: %s\n",icalvalue_get_caladdress(v));
-    icalvalue_set_caladdress(v,"cap://value/2");
-    printf("caladdress 2: %s\n",icalvalue_get_caladdress(v));
-    printf("String: %s\n",icalvalue_as_ical_string(v));
-    
-    copy = icalvalue_new_clone(v);
-    printf("Clone: %s\n",icalvalue_as_ical_string(v));
-    icalvalue_free(v);
-    icalvalue_free(copy);
-
-
-    v = icalvalue_new_boolean(1);
-    printf("caladdress 1: %d\n",icalvalue_get_boolean(v));
-    icalvalue_set_boolean(v,2);
-    printf("caladdress 2: %d\n",icalvalue_get_boolean(v));
-    printf("String: %s\n",icalvalue_as_ical_string(v));
-
-    copy = icalvalue_new_clone(v);
-    printf("Clone: %s\n",icalvalue_as_ical_string(v));
-    icalvalue_free(v);
-    icalvalue_free(copy);
-
-
-    v = icalvalue_new_date(icaltime_from_timet( time(0),0));
-    printf("date 1: %s\n",icalvalue_as_ical_string(v));
-    icalvalue_set_date(v,icaltime_from_timet( time(0)+3600,0));
-    printf("date 2: %s\n",icalvalue_as_ical_string(v));
-
-    copy = icalvalue_new_clone(v);
-    printf("Clone: %s\n",icalvalue_as_ical_string(v));
-    icalvalue_free(v);
-    icalvalue_free(copy);
-
-
-    v = icalvalue_new(-1);
-
-    printf("Invalid type: %p\n",v);
-
-    if (v!=0) icalvalue_free(v);
-
-    assert(ICAL_BOOLEAN_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_BOOLEAN));
-    assert(ICAL_UTCOFFSET_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_UTCOFFSET));
-    assert(ICAL_RECUR_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_RECUR));
-    assert(ICAL_CALADDRESS_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_CALADDRESS));
-    assert(ICAL_PERIOD_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_PERIOD));
-    assert(ICAL_BINARY_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_BINARY));
-    assert(ICAL_TEXT_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_TEXT));
-    assert(ICAL_DURATION_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_DURATION));
-    assert(ICAL_INTEGER_VALUE == icalparameter_value_to_value_kind(ICAL_VALUE_INTEGER));
-    assert(ICAL_TIME_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_TIME));
-    assert(ICAL_URI_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_URI));
-    assert(ICAL_FLOAT_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_FLOAT));
-    assert(ICAL_X_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_X));
-    assert(ICAL_DATETIME_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_DATETIME));
-    assert(ICAL_DATE_VALUE == 
-           icalparameter_value_to_value_kind(ICAL_VALUE_DATE));
-
-    /*    v = icalvalue_new_caladdress(0);
-
-    printf("Bad string: %p\n",v);
-
-    if (v!=0) icalvalue_free(v); */
-
-}
-
-void test_properties()
-{
-    icalproperty *prop;
-    icalparameter *param;
-
-    icalproperty *clone;
-
-    prop = icalproperty_vanew_comment(
-	"Another Comment",
-	icalparameter_new_cn("A Common Name 1"),
-	icalparameter_new_cn("A Common Name 2"),
-	icalparameter_new_cn("A Common Name 3"),
-       	icalparameter_new_cn("A Common Name 4"),
-	0); 
-
-    for(param = icalproperty_get_first_parameter(prop,ICAL_ANY_PARAMETER);
-	param != 0; 
-	param = icalproperty_get_next_parameter(prop,ICAL_ANY_PARAMETER)) {
-						
-	printf("Prop parameter: %s\n",icalparameter_get_cn(param));
-    }    
-
-    printf("Prop value: %s\n",icalproperty_get_comment(prop));
-
-
-    printf("As iCAL string:\n %s\n",icalproperty_as_ical_string(prop));
-    
-    clone = icalproperty_new_clone(prop);
-
-    printf("Clone:\n %s\n",icalproperty_as_ical_string(prop));
-    
-    icalproperty_free(clone);
-    icalproperty_free(prop);
-
-    prop = icalproperty_new(-1);
-
-    printf("Invalid type: %p\n",prop);
-
-    if (prop!=0) icalproperty_free(prop);
-
-    /*
-    prop = icalproperty_new_method(0);
-
-    printf("Bad string: %p\n",prop);
-   
-
-    if (prop!=0) icalproperty_free(prop);
-    */
-}
-
-void test_parameters()
-{
-    icalparameter *p;
-    int i;
-    int enums[] = {ICAL_CUTYPE_INDIVIDUAL,ICAL_CUTYPE_RESOURCE,ICAL_FBTYPE_BUSY,ICAL_PARTSTAT_NEEDSACTION,ICAL_ROLE_NONPARTICIPANT,ICAL_XLICCOMPARETYPE_LESSEQUAL,ICAL_XLICERRORTYPE_MIMEPARSEERROR,-1};
-
-    char* str1 = "A Common Name";
-
-    p = icalparameter_new_cn(str1);
-
-    printf("Common Name: %s\n",icalparameter_get_cn(p));
-
-    assert(regrstrcmp(str1,icalparameter_get_cn(p)) == 0);
-
-    printf("As String: %s\n",icalparameter_as_ical_string(p));
-
-    assert(regrstrcmp(icalparameter_as_ical_string(p),"CN=A Common Name")==0);
-
-    icalparameter_free(p);
-
-
-    p = icalparameter_new_from_string("PARTSTAT=ACCEPTED");
-    assert(icalparameter_isa(p) == ICAL_PARTSTAT_PARAMETER);
-    assert(icalparameter_get_partstat(p) == ICAL_PARTSTAT_ACCEPTED);
-
-    p = icalparameter_new_from_string("ROLE=CHAIR");
-    assert(icalparameter_isa(p) == ICAL_ROLE_PARAMETER);
-    assert(icalparameter_get_partstat(p) == ICAL_ROLE_CHAIR);
-
-    p = icalparameter_new_from_string("PARTSTAT=X-FOO");
-    assert(icalparameter_isa(p) == ICAL_PARTSTAT_PARAMETER);
-    assert(icalparameter_get_partstat(p) == ICAL_PARTSTAT_X);
-
-    p = icalparameter_new_from_string("X-PARAM=X-FOO");
-    assert(icalparameter_isa(p) == ICAL_X_PARAMETER);
-
-
-    for (i=0;enums[i] != -1; i++){
-    
-        printf("%s\n",icalparameter_enum_to_string(enums[i]));
-        assert(icalparameter_string_to_enum(
-            icalparameter_enum_to_string(enums[i]))==enums[i]);
-    }
-
-
-}
-
-
-void test_components()
-{
-
-    icalcomponent* c;
-    icalcomponent* child;
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalproperty_new_version("2.0"),
-	icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN"),
-	icalproperty_vanew_comment(
-	    "A Comment",
-	    icalparameter_new_cn("A Common Name 1"),
-	    0),
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_version("2.0"),
-	    icalproperty_new_description("This is an event"),
-	    icalproperty_vanew_comment(
-		"Another Comment",
-		icalparameter_new_cn("A Common Name 1"),
-		icalparameter_new_cn("A Common Name 2"),
-		icalparameter_new_cn("A Common Name 3"),
-		icalparameter_new_cn("A Common Name 4"),
-		0),
-	    icalproperty_vanew_xlicerror(
-		"This is only a test",
-		icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_COMPONENTPARSEERROR),
-		0),
-	    
-	    0
-	    ),
-	0
-	);
-
-    printf("Original Component:\n%s\n\n",icalcomponent_as_ical_string(c));
-
-    child = icalcomponent_get_first_component(c,ICAL_VEVENT_COMPONENT);
-
-    printf("Child Component:\n%s\n\n",icalcomponent_as_ical_string(child));
-    
-    icalcomponent_free(c);
-
-}
-
-void test_memory()
-{
-    size_t bufsize = 256;
-    int i;
-    char *p;
-
-    char S1[] = "1) When in the Course of human events, ";
-    char S2[] = "2) it becomes necessary for one people to dissolve the political bands which have connected them with another, ";
-    char S3[] = "3) and to assume among the powers of the earth, ";
-    char S4[] = "4) the separate and equal station to which the Laws of Nature and of Nature's God entitle them, ";
-    char S5[] = "5) a decent respect to the opinions of mankind requires that they ";
-    char S6[] = "6) should declare the causes which impel them to the separation. ";
-    char S7[] = "7) We hold these truths to be self-evident, ";
-    char S8[] = "8) that all men are created equal, ";
-
-/*    char S9[] = "9) that they are endowed by their Creator with certain unalienable Rights, ";
-    char S10[] = "10) that among these are Life, Liberty, and the pursuit of Happiness. ";
-    char S11[] = "11) That to secure these rights, Governments are instituted among Men, ";
-    char S12[] = "12) deriving their just powers from the consent of the governed. "; 
-*/
-
-
-    char *f, *b1, *b2, *b3, *b4, *b5, *b6, *b7, *b8;
-
-#define BUFSIZE 1024
-
-    f = icalmemory_new_buffer(bufsize);
-    p = f;
-    b1 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b1, S1);
-    icalmemory_append_string(&f, &p, &bufsize, b1);
-
-    b2 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b2, S2);
-    icalmemory_append_string(&f, &p, &bufsize, b2);
-
-    b3 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b3, S3);
-    icalmemory_append_string(&f, &p, &bufsize, b3);
-
-    b4 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b4, S4);
-    icalmemory_append_string(&f, &p, &bufsize, b4);
-
-    b5 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b5, S5);
-    icalmemory_append_string(&f, &p, &bufsize, b5);
-
-    b6 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b6, S6);
-    icalmemory_append_string(&f, &p, &bufsize, b6);
-
-    b7 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b7, S7);
-    icalmemory_append_string(&f, &p, &bufsize, b7);
-
-    b8 = icalmemory_tmp_buffer(BUFSIZE);
-    strcpy(b8, S8);
-    icalmemory_append_string(&f, &p, &bufsize, b8);
-
-
-    printf("1: %p %s \n",b1,b1);
-    printf("2: %p %s\n",b2,b2);
-    printf("3: %p %s\n",b3,b3);
-    printf("4: %p %s\n",b4,b4);
-    printf("5: %p %s\n",b5,b5);
-    printf("6: %p %s\n",b6,b6);
-    printf("7: %p %s\n",b7,b7);
-    printf("8: %p %s\n",b8,b8);
-
-    
-    printf("Final: %s\n", f);
-
-    printf("Final buffer size: %d\n",bufsize);
-
-    free(f);
-    
-    bufsize = 4;
-
-    f = icalmemory_new_buffer(bufsize);
-
-    memset(f,0,bufsize);
-    p = f;
-
-    icalmemory_append_char(&f, &p, &bufsize, 'a');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'b');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'c');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'd');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'e');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'f');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'g');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'h');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'i');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'j');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'a');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'b');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'c');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'd');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'e');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'f');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'g');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'h');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'i');
-    printf("Char-by-Char buffer: %s\n", f);
-    icalmemory_append_char(&f, &p, &bufsize, 'j');
-    printf("Char-by-Char buffer: %s\n", f);
-   
-    for(i=0; i<100; i++){
-	f = icalmemory_tmp_buffer(bufsize);
-	
-	assert(f!=0);
-
-	memset(f,0,bufsize);
-	sprintf(f,"%d",i);
-    }
-}
-
-
-int test_store()
-{
-
-    icalcomponent *c, *gauge;
-    icalerrorenum error;
-    icalcomponent *next, *itr;
-    icalfileset* cluster;
-    struct icalperiodtype rtime;
-    icaldirset *s = icaldirset_new("store");
-    int i;
-
-    rtime.start = icaltime_from_timet( time(0),0);
-
-    cluster = icalfileset_new("clusterin.vcd");
-
-    if (cluster == 0){
-	printf("Failed to create cluster: %s\n",icalerror_strerror(icalerrno));
-	return 0;
-    }
-
-#define NUMCOMP 4
-
-    /* Duplicate every component in the cluster NUMCOMP times */
-
-    icalerror_clear_errno();
-
-    for (i = 1; i<NUMCOMP+1; i++){
-
-	/*rtime.start.month = i%12;*/
-	rtime.start.month = i;
-	rtime.end = rtime.start;
-	rtime.end.hour++;
-	
-	for (itr = icalfileset_get_first_component(cluster);
-	     itr != 0;
-	     itr = icalfileset_get_next_component(cluster)){
-	    icalcomponent *clone;
-	    icalproperty *p;
-
-	    
-	    if(icalcomponent_isa(itr) != ICAL_VEVENT_COMPONENT){
-		continue;
-	    }
-
-	    assert(itr != 0);
-	    
-	    /* Change the dtstart and dtend times in the component
-               pointed to by Itr*/
-
-	    clone = icalcomponent_new_clone(itr);
-	    assert(icalerrno == ICAL_NO_ERROR);
-	    assert(clone !=0);
-
-	    /* DTSTART*/
-	    p = icalcomponent_get_first_property(clone,ICAL_DTSTART_PROPERTY);
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	    if (p == 0){
-		p = icalproperty_new_dtstart(rtime.start);
-		icalcomponent_add_property(clone,p);
-	    } else {
-		icalproperty_set_dtstart(p,rtime.start);
-	    }
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	    /* DTEND*/
-	    p = icalcomponent_get_first_property(clone,ICAL_DTEND_PROPERTY);
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	    if (p == 0){
-		p = icalproperty_new_dtstart(rtime.end);
-		icalcomponent_add_property(clone,p);
-	    } else {
-		icalproperty_set_dtstart(p,rtime.end);
-	    }
-	    assert(icalerrno  == ICAL_NO_ERROR);
-	    
-	    printf("\n----------\n%s\n---------\n",icalcomponent_as_ical_string(clone));
-
-	    error = icaldirset_add_component(s,clone);
-	    
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	}
-
-    }
-    
-    gauge = 
-	icalcomponent_vanew(
-	    ICAL_VCALENDAR_COMPONENT,
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,  
-		icalproperty_vanew_summary(
-		    "Submit Income Taxes",
-		    icalparameter_new_xliccomparetype(ICAL_XLICCOMPARETYPE_EQUAL),
-		    0),
-		0),
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,  
-		icalproperty_vanew_summary(
-		    "Bastille Day Party",
-		    icalparameter_new_xliccomparetype(ICAL_XLICCOMPARETYPE_EQUAL),
-		    0),
-		0),
-	    0);
-
-#if 0
-
-
-    icaldirset_select(s,gauge);
-
-    for(c = icaldirset_first(s); c != 0; c = icaldirset_next(s)){
-	
-	printf("Got one! (%d)\n", count++);
-	
-	if (c != 0){
-	    printf("%s", icalcomponent_as_ical_string(c));;
-	    if (icaldirset_store(s2,c) == 0){
-		printf("Failed to write!\n");
-	    }
-	    icalcomponent_free(c);
-	} else {
-	    printf("Failed to get component\n");
-	}
-    }
-
-
-    icaldirset_free(s2);
-#endif
-
-
-    for(c = icaldirset_get_first_component(s); 
-	c != 0; 
-	c =  next){
-	
-	next = icaldirset_get_next_component(s);
-
-	if (c != 0){
-	    /*icaldirset_remove_component(s,c);*/
-	    printf("%s", icalcomponent_as_ical_string(c));;
-	} else {
-	    printf("Failed to get component\n");
-	}
-
-
-    }
-
-    icaldirset_free(s);
-    return 0;
-}
-
-int test_compare()
-{
-    icalvalue *v1, *v2;
-
-    v1 = icalvalue_new_caladdress("cap://value/1");
-    v2 = icalvalue_new_clone(v1);
-
-    printf("%d\n",icalvalue_compare(v1,v2));
-
-    v1 = icalvalue_new_caladdress("A");
-    v2 = icalvalue_new_caladdress("B");
-
-    printf("%d\n",icalvalue_compare(v1,v2));
-
-    v1 = icalvalue_new_caladdress("B");
-    v2 = icalvalue_new_caladdress("A");
-
-    printf("%d\n",icalvalue_compare(v1,v2));
-
-    v1 = icalvalue_new_integer(5);
-    v2 = icalvalue_new_integer(5);
-
-    printf("%d\n",icalvalue_compare(v1,v2));
-
-    v1 = icalvalue_new_integer(5);
-    v2 = icalvalue_new_integer(10);
-
-    printf("%d\n",icalvalue_compare(v1,v2));
-
-    v1 = icalvalue_new_integer(10);
-    v2 = icalvalue_new_integer(5);
-
-    printf("%d\n",icalvalue_compare(v1,v2));
-
-    return 0;
-}
-
-void test_restriction()
-{
-    icalcomponent *comp;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0);
-    int valid; 
-
-    struct icaldatetimeperiodtype rtime;
-
-    rtime.period.start = icaltime_from_timet( time(0),0);
-    rtime.period.end = icaltime_from_timet( time(0),0);
-    rtime.period.end.hour++;
-    rtime.time = icaltime_null_time();
-
-    comp = 
-	icalcomponent_vanew(
-	    ICAL_VCALENDAR_COMPONENT,
-	    icalproperty_new_version("2.0"),
-	    icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN"),
-	    icalproperty_new_method(ICAL_METHOD_REQUEST),
-	    icalcomponent_vanew(
-		ICAL_VTIMEZONE_COMPONENT,
-		icalproperty_new_tzid("US_Eastern"),
-		icalcomponent_vanew(
-		    ICAL_XDAYLIGHT_COMPONENT,
-		    icalproperty_new_dtstart(atime),
-		    icalproperty_new_rdate(rtime),
-		    icalproperty_new_tzoffsetfrom(-4.0),
-		    icalproperty_new_tzoffsetto(-5.0),
-		    icalproperty_new_tzname("EST"),
-		    0
-		    ),
-		icalcomponent_vanew(
-		    ICAL_XSTANDARD_COMPONENT,
-		    icalproperty_new_dtstart(atime),
-		    icalproperty_new_rdate(rtime),
-		    icalproperty_new_tzoffsetfrom(-5.0),
-		    icalproperty_new_tzoffsetto(-4.0),
-		    icalproperty_new_tzname("EST"),
-		    0
-		    ),
-		0
-		),
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,
-		icalproperty_new_dtstamp(atime),
-		icalproperty_new_uid("guid-1.host1.com"),
-		icalproperty_vanew_organizer(
-		    "mrbig@host.com",
-		    icalparameter_new_role(ICAL_ROLE_CHAIR),
-		    0
-		    ),
-		icalproperty_vanew_attendee(
-		    "employee-A@host.com",
-		    icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT),
-		    icalparameter_new_rsvp(ICAL_RSVP_TRUE),
-		    icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
-		    0
-		    ),
-		icalproperty_new_description("Project XYZ Review Meeting"),
-		icalproperty_new_categories("MEETING"),
-		icalproperty_new_class("PUBLIC"),
-		icalproperty_new_created(atime),
-		icalproperty_new_summary("XYZ Project Review"),
-                /*		icalproperty_new_dtstart(
-		    atime,
-		    icalparameter_new_tzid("US-Eastern"),
-		    0
-		    ),*/
-		icalproperty_vanew_dtend(
-		    atime,
-		    icalparameter_new_tzid("US-Eastern"),
-		    0
-		    ),
-		icalproperty_new_location("1CP Conference Room 4350"),
-		0
-		),
-	    0
-	    );
-
-    valid = icalrestriction_check(comp);
-
-    printf("#### %d ####\n%s\n",valid, icalcomponent_as_ical_string(comp));
-
-}
-
-#if 0
-void test_calendar()
-{
-    icalcomponent *comp;
-    icalfileset *c;
-    icaldirset *s;
-    icalcalendar* calendar = icalcalendar_new("calendar");
-    icalerrorenum error;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0);
-
-    comp = icalcomponent_vanew(
-	ICAL_VEVENT_COMPONENT,
-	icalproperty_new_version("2.0"),
-	icalproperty_new_description("This is an event"),
-	icalproperty_new_dtstart(atime),
-	icalproperty_vanew_comment(
-	    "Another Comment",
-	    icalparameter_new_cn("A Common Name 1"),
-	    icalparameter_new_cn("A Common Name 2"),
-	    icalparameter_new_cn("A Common Name 3"),
-		icalparameter_new_cn("A Common Name 4"),
-	    0),
-	icalproperty_vanew_xlicerror(
-	    "This is only a test",
-	    icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_COMPONENTPARSEERROR),
-	    0),
-	
-	0);
-	
-	
-    s = icalcalendar_get_booked(calendar);
-
-    error = icaldirset_add_component(s,comp);
-    
-    assert(error == ICAL_NO_ERROR);
-
-    c = icalcalendar_get_properties(calendar);
-
-    error = icalfileset_add_component(c,icalcomponent_new_clone(comp));
-
-    assert(error == ICAL_NO_ERROR);
-
-    icalcalendar_free(calendar);
-
-}
-#endif
-
-void test_increment(void);
-
-void print_occur(struct icalrecurrencetype recur, struct icaltimetype start)
-{
-    struct icaltimetype next;
-    icalrecur_iterator* ritr;
-	
-    time_t tt = icaltime_as_timet(start);
-
-    printf("#### %s\n",icalrecurrencetype_as_string(&recur));
-    printf("#### %s\n",ctime(&tt ));
-    
-    for(ritr = icalrecur_iterator_new(recur,start),
-	    next = icalrecur_iterator_next(ritr); 
-	!icaltime_is_null_time(next);
-	next = icalrecur_iterator_next(ritr)){
-	
-	tt = icaltime_as_timet(next);
-	
-	printf("  %s",ctime(&tt ));		
-	
-    }
-
-    icalrecur_iterator_free(ritr);
-}
-
-void test_recur()
-{
-   struct icalrecurrencetype rt;
-   struct icaltimetype start;
-   time_t array[25];
-   int i;
-
-   rt = icalrecurrencetype_from_string("FREQ=MONTHLY;UNTIL=19971224T000000Z;INTERVAL=1;BYDAY=TU,2FR,3SA");
-   start = icaltime_from_string("19970905T090000Z");
-
-   print_occur(rt,start);   
-
-   printf("\n  Using icalrecur_expand_recurrence\n");
-
-   icalrecur_expand_recurrence("FREQ=MONTHLY;UNTIL=19971224T000000Z;INTERVAL=1;BYDAY=TU,2FR,3SA",
-			       icaltime_as_timet(start),
-			       25,
-			       array);
-
-   for(i =0; array[i] != 0 && i < 25 ; i++){
-       
-       printf("  %s",ctime(&(array[i])));
-   }
-
-   
-/*    test_increment();*/
-
-}
-
-void test_expand_recurrence(){
-
-    time_t arr[10];
-    time_t now = 931057385;
-    int i;
-    icalrecur_expand_recurrence( "FREQ=MONTHLY;BYDAY=MO,WE", now,
-                                 5, arr );
-
-    printf("Start %s",ctime(&now) );
-    for (i=0; i<5; i++)
-        {
-            printf("i=%d  %s\n", i, ctime(&arr[i]) );
-        }
-            
-}
-
-
-
-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; 
-	struct icaltimetype last; /* last time return from _iterator_next*/
-	int occurrence_no; /* number of step made on this iterator */
-	struct icalrecurrencetype rule;
-
-	short days[366];
-	short days_index;
-
-	enum byrule byrule;
-	short by_indices[9];
-
-
-	short *by_ptrs[9]; /* Pointers into the by_* array elements of the rule */
-};
-
-void icalrecurrencetype_test()
-{
-    icalvalue *v = icalvalue_new_from_string(
-	ICAL_RECUR_VALUE,
-	"FREQ=YEARLY;UNTIL=20060101T000000;INTERVAL=2;BYDAY=SU,WE;BYSECOND=15,30; BYMONTH=1,6,11");
-
-    struct icalrecurrencetype r = icalvalue_get_recur(v);
-    struct icaltimetype t = icaltime_from_timet( time(0), 0);
-    struct icaltimetype next;
-    time_t tt;
-
-    struct icalrecur_iterator_impl* itr 
-	= (struct icalrecur_iterator_impl*) icalrecur_iterator_new(r,t);
-
-    do {
-
-	next = icalrecur_iterator_next(itr);
-	tt = icaltime_as_timet(next);
-
-	printf("%s",ctime(&tt ));		
-
-    } while( ! icaltime_is_null_time(next));
- 
-}
-
-/* From Federico Mena Quintero <federico@ximian.com>    */
-void test_recur_parameter_bug(){
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
- 
-#include <stdio.h>
-#include <stdlib.h>
-#include <ical.h>
- 
-    static const char test_icalcomp_str[] =
-"BEGIN:VEVENT\r\n"
-"RRULE\r\n"
-" ;X-EVOLUTION-ENDDATE=20030209T081500\r\n"
-" :FREQ=DAILY;COUNT=10;INTERVAL=6\r\n"
-"END:VEVENT\r\n";
-  
-    icalcomponent *icalcomp;
-    icalproperty *prop;
-    struct icalrecurrencetype recur;
-    int n_errors;
-    
-    icalcomp = icalparser_parse_string ((char *) test_icalcomp_str);
-    if (!icalcomp) {
-	fprintf (stderr, "main(): could not parse the component\n");
-	exit (EXIT_FAILURE);
-    }
-    
-    printf("%s\n\n",icalcomponent_as_ical_string(icalcomp));
-
-    n_errors = icalcomponent_count_errors (icalcomp);
-    if (n_errors) {
-	icalproperty *p;
-	
-	for (p = icalcomponent_get_first_property (icalcomp,
-						   ICAL_XLICERROR_PROPERTY);
-	     p;
-	     p = icalcomponent_get_next_property (icalcomp,
-						  ICAL_XLICERROR_PROPERTY)) {
-	    char *str;
-	    
-	    str = icalproperty_as_ical_string (p);
-	    fprintf (stderr, "error: %s\n", str);
-	}
-    }
-    
-    prop = icalcomponent_get_first_property (icalcomp, ICAL_RRULE_PROPERTY);
-    if (!prop) {
-	fprintf (stderr, "main(): could not get the RRULE property");
-	exit (EXIT_FAILURE);
-    }
-    
-    recur = icalproperty_get_rrule (prop);
-    
-    printf("%s\n",icalrecurrencetype_as_string(&recur));
-
-}
-
-
-void test_duration()
-{
-
-
-    struct icaldurationtype d;
-
-    d = icaldurationtype_from_string("PT8H30M");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 30600);
-    
-    d = icaldurationtype_from_string("-PT8H30M");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == -30600);
-
-    d = icaldurationtype_from_string("PT10H10M10S");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 36610);
-
-    d = icaldurationtype_from_string("P7W");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 4233600);
-
-    d = icaldurationtype_from_string("P2DT8H30M");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 203400);
-
-    icalerror_errors_are_fatal = 0;
-
-    d = icaldurationtype_from_string("P-2DT8H30M");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 0);
-
-    d = icaldurationtype_from_string("P7W8H");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 0);
-
-    d = icaldurationtype_from_string("T10H");
-    printf("%s\n",icaldurationtype_as_ical_string(d));
-    assert(icaldurationtype_as_int(d) == 0);
-
-
-    icalerror_errors_are_fatal = 1;
-
-}
-
-void test_period()
-{
-
-    struct icalperiodtype p;
-    icalvalue *v;
-
-    p = icalperiodtype_from_string("19971015T050000Z/PT8H30M");
-    printf("%s\n",icalperiodtype_as_ical_string(p));
-    assert(strcmp(icalperiodtype_as_ical_string(p),
-                  "19971015T050000Z/PT8H30M") == 0);
-
-    p = icalperiodtype_from_string("19971015T050000Z/19971015T060000Z");
-    printf("%s\n",icalperiodtype_as_ical_string(p));
-    assert(strcmp(icalperiodtype_as_ical_string(p),
-                  "19971015T050000Z/19971015T060000Z") == 0);
-
-    p = icalperiodtype_from_string("19970101T120000/PT3H");
-    printf("%s\n",icalperiodtype_as_ical_string(p));
-    assert(strcmp(icalperiodtype_as_ical_string(p),
-                  "19970101T120000/PT3H") == 0);
-
-    v = icalvalue_new_from_string(ICAL_PERIOD_VALUE,"19970101T120000/PT3H");
-    printf("%s\n",icalvalue_as_ical_string(v));
-    assert(strcmp(icalvalue_as_ical_string(v),
-                  "19970101T120000/PT3H") == 0);
-
-
-}
-
-void test_strings(){
-
-    icalvalue *v;
-
-    v = icalvalue_new_text("foo;bar;bats");
-    
-    printf("%s\n",icalvalue_as_ical_string(v));
-
-    icalvalue_free(v);
-
-    v = icalvalue_new_text("foo\\;b\nar\\;ba\tts");
-    
-    printf("%s\n",icalvalue_as_ical_string(v));
-    
-    icalvalue_free(v);
-
-
-}
-
-void test_requeststat()
-{
-  icalrequeststatus s;
-  struct icalreqstattype st, st2;
-  char temp[1024];
-
-  s = icalenum_num_to_reqstat(2,1);
-
-  assert(s == ICAL_2_1_FALLBACK_STATUS);
-
-  assert(icalenum_reqstat_major(s) == 2);
-  assert(icalenum_reqstat_minor(s) == 1);
-
-  printf("2.1: %s\n",icalenum_reqstat_desc(s));
-
-  st.code = s;
-  st.debug = "booga";
-  st.desc = 0;
-
-  printf("%s\n",icalreqstattype_as_string(st));
-
-  st.desc = " A non-standard description";
-
-  printf("%s\n",icalreqstattype_as_string(st));
-
-
-  st.desc = 0;
-
-  sprintf(temp,"%s\n",icalreqstattype_as_string(st));
-  
-
-  st2 = icalreqstattype_from_string("2.1;Success but fallback taken  on one or more property  values.;booga");
-
-  printf("%d --  %d --  %s -- %s\n",icalenum_reqstat_major(st2.code),
-         icalenum_reqstat_minor(st2.code),
-         icalenum_reqstat_desc(st2.code),
-         st2.debug);
-
-  st2 = icalreqstattype_from_string("2.1;Success but fallback taken  on one or more property  values.;booga");
-  printf("%s\n",icalreqstattype_as_string(st2));
-
-  st2 = icalreqstattype_from_string("2.1;Success but fallback taken  on one or more property  values.;");
-  printf("%s\n",icalreqstattype_as_string(st2));
-
-  st2 = icalreqstattype_from_string("2.1;Success but fallback taken  on one or more property  values.");
-  printf("%s\n",icalreqstattype_as_string(st2));
-
-  st2 = icalreqstattype_from_string("2.1;");
-  printf("%s\n",icalreqstattype_as_string(st2));
-
-  st2 = icalreqstattype_from_string("2.1");
-  printf("%s\n",icalreqstattype_as_string(st2));
-
-#ifndef ICAL_ERRORS_ARE_FATAL
-  st2 = icalreqstattype_from_string("16.4");
-  assert(st2.code == ICAL_UNKNOWN_STATUS);
-
-  st2 = icalreqstattype_from_string("1.");
-  assert(st2.code == ICAL_UNKNOWN_STATUS);
-#endif
-}
-
-char ictt_str[1024];
-char* ictt_as_string(struct icaltimetype t)
-{
-
-    sprintf(ictt_str,"%02d-%02d-%02d %02d:%02d:%02d%s",t.year,t.month,t.day,
-	    t.hour,t.minute,t.second,t.is_utc?" Z":"");
-
-    return ictt_str;
-}
-
-
-char* ical_timet_string(time_t t)
-{
-    struct tm stm = *(gmtime(&t));    
-
-    sprintf(ictt_str,"%02d-%02d-%02d %02d:%02d:%02d Z",stm.tm_year+1900,
-	    stm.tm_mon+1,stm.tm_mday,stm.tm_hour,stm.tm_min,stm.tm_sec);
-
-    return ictt_str;
-    
-}
-
-void do_test_time(char* zone)
-{
-    struct icaltimetype ictt, icttutc, icttutczone, icttdayl, 
-	icttla, icttny,icttphoenix, icttlocal, icttnorm;
-    time_t tt,tt2, tt_p200;
-    int offset_la, offset_tz;
-    icalvalue *v;
-    short day_of_week,start_day_of_week, day_of_year;
-
-    icalerror_errors_are_fatal = 0;
-
-    ictt = icaltime_from_string("20001103T183030Z");
-
-    tt = icaltime_as_timet(ictt);
-
-    assert(tt==973276230); /* Fri Nov  3 10:30:30 PST 2000 in PST 
-                               Fri Nov  3 18:30:30 PST 2000 in UTC */
-    
-    offset_la = icaltime_utc_offset(ictt,"America/Los_Angeles");
-    offset_tz = icaltime_utc_offset(ictt, zone);
-
-    printf(" Normalize \n");
-    printf("Orig (ical) : %s\n", ictt_as_string(ictt));
-    icttnorm = ictt;
-    icttnorm.second -= 60 * 60 * 24 * 5;
-    icttnorm = icaltime_normalize(icttnorm);
-    printf("-5d in sec  : %s\n", ictt_as_string(icttnorm));
-    icttnorm.day += 60;
-    icttnorm = icaltime_normalize(icttnorm);
-    printf("+60 d       : %s\n", ictt_as_string(icttnorm));
-
-
-    printf("\n As time_t \n");
-
-    tt2 = icaltime_as_timet(ictt);
-    printf("20001103T183030Z (timet): %s\n",ical_timet_string(tt2));
-    printf("20001103T183030Z        : %s\n",ictt_as_string(ictt));
-    assert(tt2 == tt);
-
-    icttlocal = icaltime_from_string("20001103T183030");
-    tt2 = icaltime_as_timet(icttlocal);
-    printf("20001103T183030  (timet): %s\n",ical_timet_string(tt2));
-    printf("20001103T183030         : %s\n",ictt_as_string(icttlocal));
-    assert(tt-tt2 == offset_tz);
-
-    printf("\n From time_t \n");
-
-    printf("Orig        : %s\n",ical_timet_string(tt));
-    printf("As utc      : %s\n", ictt_as_string(ictt));
-
-    icttlocal = icaltime_as_zone(ictt,zone);
-    printf("As local    : %s\n", ictt_as_string(icttlocal));
-    
-
-    printf("\n Convert to and from lib c \n");
-
-    printf("System time is: %s\n",ical_timet_string(tt));
-
-    v = icalvalue_new_datetime(ictt);
-
-    printf("System time from libical: %s\n",icalvalue_as_ical_string(v));
-
-    tt2 = icaltime_as_timet(ictt);
-    printf("Converted back to libc: %s\n",ical_timet_string(tt2));
-    
-    printf("\n Incrementing time  \n");
-
-    icttnorm = ictt;
-
-    icttnorm.year++;
-    tt2 = icaltime_as_timet(icttnorm);
-    printf("Add a year: %s\n",ical_timet_string(tt2));
-
-    icttnorm.month+=13;
-    tt2 = icaltime_as_timet(icttnorm);
-    printf("Add 13 months: %s\n",ical_timet_string(tt2));
-
-    icttnorm.second+=90;
-    tt2 = icaltime_as_timet(icttnorm);
-    printf("Add 90 seconds: %s\n",ical_timet_string(tt2));
-
-    printf("\n Day Of week \n");
-
-    day_of_week = icaltime_day_of_week(ictt);
-    start_day_of_week = icaltime_start_doy_of_week(ictt);
-    day_of_year = icaltime_day_of_year(ictt);
-
-
-    printf("Today is day of week %d, day of year %d\n",day_of_week,day_of_year);
-    printf("Week started n doy of %d\n",start_day_of_week);
-    assert(day_of_week == 6);
-    assert(day_of_year == 308);
-    assert(start_day_of_week == 303 );
-
-    printf("\n TimeZone Conversions \n");
-
-    icttla = icaltime_as_zone(ictt,"America/Los_Angeles");
-    assert(icttla.hour == 10);
-
-    icttutc = icaltime_as_utc(icttla,"America/Los_Angeles");
-    assert(icaltime_compare(icttla,
-			 icaltime_from_string("20001103T103030"))==0);
-
-    icttutczone = icaltime_as_zone(ictt,"Etc/GMT0");
-    icttutczone.is_utc = 1;
-    assert(icaltime_compare(icttutc, icttutczone) == 0); 
-    assert(icaltime_compare(icttutc, ictt) == 0); 
-
-    icttny  = icaltime_as_zone(ictt,"America/New_York");
-
-    icttphoenix = icaltime_as_zone(ictt,"America/Phoenix");
-
-    printf("Orig (ctime): %s\n", ical_timet_string(tt) );
-    printf("Orig (ical) : %s\n", ictt_as_string(ictt));
-    printf("UTC         : %s\n", ictt_as_string(icttutc));
-    printf("Los Angeles : %s\n", ictt_as_string(icttla));
-    printf("Phoenix     : %s\n", ictt_as_string(icttphoenix));
-    printf("New York    : %s\n", ictt_as_string(icttny));
-
-
-    /* Daylight savings test for New York */
-    printf("\n Daylight Savings \n");
-
-    printf("Orig (ctime): %s\n", ical_timet_string(tt) );
-    printf("Orig (ical) : %s\n", ictt_as_string(ictt));
-    printf("NY          : %s\n", ictt_as_string(icttny));
-
-    assert(strcmp(ictt_as_string(icttny),"2000-11-03 13:30:30")==0);
-
-    tt_p200 = tt +  200 * 24 * 60 * 60 ; /* Add 200 days */
-
-    icttdayl = icaltime_from_timet(tt_p200,0);    
-    icttny = icaltime_as_zone(icttdayl,"America/New_York");
-    
-    printf("Orig +200d  : %s\n", ical_timet_string(tt_p200) );
-    printf("NY+200D     : %s\n", ictt_as_string(icttny));
-
-    assert(strcmp(ictt_as_string(icttny),"2001-05-22 14:30:30")==0);
-
-    /* Daylight savings test for Los Angeles */
-
-    icttla  = icaltime_as_zone(ictt,"America/Los_Angeles");
-
-    printf("\nOrig (ctime): %s\n", ical_timet_string(tt) );
-    printf("Orig (ical) : %s\n", ictt_as_string(ictt));
-    printf("LA          : %s\n", ictt_as_string(icttla));
-
-    assert(strcmp(ictt_as_string(icttla),"2000-11-03 10:30:30")==0);
-    
-    icttla = icaltime_as_zone(icttdayl,"America/Los_Angeles");
-    
-    printf("Orig +200d  : %s\n", ical_timet_string(tt_p200) );
-    printf("LA+200D     : %s\n", ictt_as_string(icttla));
-
-    assert(strcmp(ictt_as_string(icttla),"2001-05-22 11:30:30")==0);
-
-    icalerror_errors_are_fatal = 1;
-}
-
-void test_iterators()
-{
-    icalcomponent *c,*inner,*next;
-    icalcompiter i;
-
-    c= icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(ICAL_VEVENT_COMPONENT,
-			    icalproperty_vanew_version("1"),0),
-	icalcomponent_vanew(ICAL_VEVENT_COMPONENT,
-			    icalproperty_vanew_version("2"),0),
-	icalcomponent_vanew(ICAL_VEVENT_COMPONENT,
-			    icalproperty_vanew_version("3"),0),
-	icalcomponent_vanew(ICAL_VEVENT_COMPONENT,
-			    icalproperty_vanew_version("4"),0),
-	icalcomponent_vanew(ICAL_VTODO_COMPONENT,
-			    icalproperty_vanew_version("5"),0),
-	icalcomponent_vanew(ICAL_VJOURNAL_COMPONENT,
-			    icalproperty_vanew_version("6"),0),
-	icalcomponent_vanew(ICAL_VEVENT_COMPONENT,
-			    icalproperty_vanew_version("7"),0),
-	icalcomponent_vanew(ICAL_VJOURNAL_COMPONENT,
-			    icalproperty_vanew_version("8"),0),
-	icalcomponent_vanew(ICAL_VJOURNAL_COMPONENT,
-			    icalproperty_vanew_version("9"),0),
-	icalcomponent_vanew(ICAL_VJOURNAL_COMPONENT,
-			    icalproperty_vanew_version("10"),0),
-	0);
-   
-    printf("1: ");
-
-    /* List all of the VEVENTS */
-    for(i = icalcomponent_begin_component(c,ICAL_VEVENT_COMPONENT);
-	icalcompiter_deref(&i)!= 0; icalcompiter_next(&i)){
-	
-	icalcomponent *this = icalcompiter_deref(&i);
-
-	icalproperty *p = 
-	    icalcomponent_get_first_property(this,
-					     ICAL_VERSION_PROPERTY);
-	const char* s = icalproperty_get_version(p);
-
-	printf("%s ",s);
-	    
-    }
-
-    printf("\n2: ");
-
-#if 0
-    for(inner = icalcomponent_get_first_component(c,ICAL_VEVENT_COMPONENT); 
-	inner != 0; 
-	inner = next){
-	
-	next = icalcomponent_get_next_component(c,ICAL_VEVENT_COMPONENT);
-
-	icalcomponent_remove_component(c,inner);
-
-	icalcomponent_free(inner);
-    }
-#endif
-
-    /* Delete all of the VEVENTS */
-    /* reset iterator */
-    icalcomponent_get_first_component(c,ICAL_VEVENT_COMPONENT);
-
-    while((inner=icalcomponent_get_current_component(c)) != 0 ){
-	if(icalcomponent_isa(inner) == ICAL_VEVENT_COMPONENT){
-	    icalcomponent_remove_component(c,inner);
-	} else {
-	    icalcomponent_get_next_component(c,ICAL_VEVENT_COMPONENT);
-	}
-    }
-	
-
-
-    /* List all remaining components */
-    for(inner = icalcomponent_get_first_component(c,ICAL_ANY_COMPONENT); 
-	inner != 0; 
-	inner = icalcomponent_get_next_component(c,ICAL_ANY_COMPONENT)){
-	
-
-	icalproperty *p = 
-	    icalcomponent_get_first_property(inner,ICAL_VERSION_PROPERTY);
-
-	const char* s = icalproperty_get_version(p);	
-
-	printf("%s ",s);
-    }
-
-    printf("\n3: ");
-
-    
-    /* Remove all remaining components */
-    for(inner = icalcomponent_get_first_component(c,ICAL_ANY_COMPONENT); 
-	inner != 0; 
-	inner = next){
-
-	icalcomponent *this;
-	icalproperty *p;
-	const char* s;
-	next = icalcomponent_get_next_component(c,ICAL_ANY_COMPONENT);
-
-	p=icalcomponent_get_first_property(inner,ICAL_VERSION_PROPERTY);
-	s = icalproperty_get_version(p);	
-	printf("rem:%s ",s);
-
-	icalcomponent_remove_component(c,inner);
-
-	this = icalcomponent_get_current_component(c);
-
-	if(this != 0){
-	    p=icalcomponent_get_first_property(this,ICAL_VERSION_PROPERTY);
-	    s = icalproperty_get_version(p);	
-	    printf("next:%s; ",s);
-	}
-
-	icalcomponent_free(inner);
-    }
-
-    printf("\n4: ");
-
-
-    /* List all remaining components */
-    for(inner = icalcomponent_get_first_component(c,ICAL_ANY_COMPONENT); 
-	inner != 0; 
-	inner = icalcomponent_get_next_component(c,ICAL_ANY_COMPONENT)){
-	
-	icalproperty *p = 
-	    icalcomponent_get_first_property(inner,ICAL_VERSION_PROPERTY);
-
-	const char* s = icalproperty_get_version(p);	
-
-	printf("%s ",s);
-    }
-
-    printf("\n");
-}
-
-
-
-char* test_set_tz(const char* tzid)
-{
-    char *tzstr = 0;
-    char *tmp;
-
-   /* Put the new time zone into the environment */
-    if(getenv("TZ") != 0){
-	tzstr = (char*)icalmemory_strdup(getenv("TZ"));
-
-	if(tzstr == 0){
-	    icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	    return 0;
-	}
-    }
-
-    tmp = (char*)malloc(1024);
-
-    if(tmp == 0){
-	icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-	return 0;
-    }
-
-    snprintf(tmp,1024,"TZ=%s",tzid);
-
-    /* HACK. In some libc versions, putenv gives the string to the
-       system and in some it gives a copy, so the following might be a
-       memory leak. THe linux man page says that glibc2.1.2 take
-       ownership ( no leak) while BSD4.4 uses a copy ( A leak ) */
-    putenv(tmp); 
-
-    return tzstr; /* This will be zero if the TZ env var was not set */
-}
-
-void test_unset_tz(char* tzstr)
-{
-    /* restore the original environment */
-
-    if(tzstr!=0){
-	char temp[1024];
-	snprintf(temp,1024,"TZ=%s",tzstr);
-	putenv(temp);
-	free(tzstr);
-    } else {
-	putenv("TZ"); /* Delete from environment */
-    } 
-}
-
-
-void test_time()
-{
-    char  zones[6][40] = { "America/Los_Angeles","America/New_York","Europe/London","Asia/Shanghai", ""};
-    int i;
-    char* old_tz;
-    int orig_month;
-    time_t tt;
-    struct tm stm;
-
-    tt = time(0);
-
-    stm = *(localtime(&tt));
-
-    orig_month = stm.tm_mon;
-
-    do_test_time(0);
-
-    old_tz = test_set_tz(zones[0]);
-
-    for(i = 0; zones[i][0] != 0; i++){
-
-	if(zones[i][0] != 0){
-	    test_set_tz(zones[i]);
-	}
-	
-	printf(" ######### Timezone: %s ############\n",zones[i]);
-	
-	do_test_time(zones[i]);
-
-    } 
-
-    test_unset_tz(old_tz);
-
-}
-
-
-void test_icalset()
-{
-    icalcomponent *c; 
-
-    icalset* f = icalset_new_file("2446.ics");
-    icalset* d = icalset_new_dir("outdir");
-
-    assert(f!=0);
-    assert(d!=0);
-
-    for(c = icalset_get_first_component(f);
-	c != 0;
-	c = icalset_get_next_component(f)){
-
-	icalcomponent *clone; 
-
-	clone = icalcomponent_new_clone(c);
-
-	icalset_add_component(d,clone);
-
-	printf(" class %d\n",icalclassify(c,0,"user"));
-
-    }
-}
-
-void test_classify()
-{
-    icalcomponent *c,*match; 
-
-    icalset* f = icalset_new_file("../../test-data/classify.ics");
-
-    assert(f!=0);
-
-    c = icalset_get_first_component(f);
-    match = icalset_get_next_component(f);
-    
-    printf("Class %d\n",icalclassify(c,match,"A@example.com"));
-
-   
-}
-
-void print_span(int c, struct icaltime_span span ){
-
-    printf("#%02d start: %s\n",c,ical_timet_string(span.start));
-    printf("    end  : %s\n",ical_timet_string(span.end));
-
-}
-
-struct icaltimetype icaltime_as_local(struct icaltimetype tt) {
-    return  icaltime_as_zone(tt,0);
-}
-
-void test_span()
-{
-    time_t tm1 = 973378800; /*Sat Nov  4 23:00:00 UTC 2000,
-			      Sat Nov  4 15:00:00 PST 2000 */
-    time_t tm2 = 973382400; /*Sat Nov  5 00:00:00 UTC 2000 
-			      Sat Nov  4 16:00:00 PST 2000 */
-    struct icaldurationtype dur;
-    struct icaltime_span span;
-    icalcomponent *c; 
-
-    memset(&dur,0,sizeof(dur));
-    dur.minutes = 30;
-
-    span.start = tm1;
-    span.end = tm2;
-    print_span(0,span);
-
-    /* Specify save timezone as in commend above */
-    c = 
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-		icalproperty_vanew_dtstart(
-		    icaltime_as_local(icaltime_from_timet(tm1,0)),
-		    icalparameter_new_tzid("US/Pacific"),0),
-		icalproperty_vanew_dtend(
-		    icaltime_as_local(icaltime_from_timet(tm2,0)),
-		    icalparameter_new_tzid("US/Pacific"),0),
-	    0
-	    );
-
-    printf("%s\n",icalcomponent_as_ical_string(c));
-
-    span = icalcomponent_get_span(c);
-
-    print_span(1,span);
-
-    icalcomponent_free(c);
-
-    /* Use machine's local timezone. Same as above if run in US/Pacific */
-    c = 
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_vanew_dtstart(icaltime_from_timet(tm1,0),0),
-	    icalproperty_vanew_dtend(icaltime_from_timet(tm2,0),0),
-	    0
-	    );
-
-    span = icalcomponent_get_span(c);
-
-    print_span(2,span);
-
-    icalcomponent_free(c);
-
-    /* Specify different timezone */
-    c = 
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-		icalproperty_vanew_dtstart(
-		    icaltime_as_local(icaltime_from_timet(tm1,0)),
-		    icalparameter_new_tzid("US/Eastern"),0),
-		icalproperty_vanew_dtend(
-		    icaltime_as_local(icaltime_from_timet(tm2,0)),
-		    icalparameter_new_tzid("US/Eastern"),0),
-	    0
-	    );
-    span = icalcomponent_get_span(c);
-    print_span(3,span);
-
-    icalcomponent_free(c);
-
-
-    /* Specify different timezone for start and end*/
-    c = 
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-		icalproperty_vanew_dtstart(
-		    icaltime_as_local(icaltime_from_timet(tm1,0)),
-		    icalparameter_new_tzid("US/Eastern"),0),
-		icalproperty_vanew_dtend(
-		    icaltime_as_local(icaltime_from_timet(tm2,0)),
-		    icalparameter_new_tzid("US/Pacific"),0),
-	    0
-	    );
-    span = icalcomponent_get_span(c);
-    print_span(4,span);
-
-    icalcomponent_free(c);
-
-    /* Use Duration */
-    c = 
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-		icalproperty_vanew_dtstart(
-		    icaltime_as_local(icaltime_from_timet(tm1,0)),
-		    icalparameter_new_tzid("US/Pacific"),0),
-	    icalproperty_new_duration(dur),
-
-	    0
-	    );
-    span = icalcomponent_get_span(c);
-    print_span(5,span);
-
-    icalcomponent_free(c);
-
-
-#ifndef ICAL_ERRORS_ARE_FATAL
-    /* Both UTC and Timezone -- an error */
-    icalerror_clear_errno();
-    c = 
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-		icalproperty_vanew_dtstart(icaltime_from_timet(tm1,0),
-		    icalparameter_new_tzid("US/Eastern"),0),
-		icalproperty_vanew_dtend(icaltime_from_timet(tm2,0),
-		    icalparameter_new_tzid("US/Eastern"),0),
-	    0
-	    );
-
-    span = icalcomponent_get_span(c);
-    assert(icalerrno != ICAL_NO_ERROR);
-
-    icalcomponent_free(c);
-
-#endif /*ICAL_ERRORS_ARE_FATAL*/
-
-}
-
-icalcomponent* icalclassify_find_overlaps(icalset* set, icalcomponent* comp);
-
-void test_overlaps()
-{
-
-#if 0 /* Hack, not working right now */
-    icalcomponent *cset,*c;
-    icalset *set;
-    time_t tm1 = 973378800; /*Sat Nov  4 23:00:00 UTC 2000,
-			      Sat Nov  4 15:00:00 PST 2000 */
-    time_t tm2 = 973382400; /*Sat Nov  5 00:00:00 UTC 2000 
-			      Sat Nov  4 16:00:00 PST 2000 */
-
-    time_t hh = 1800; /* one half hour */
-
-    set = icalset_new_file("../../test-data/overlaps.ics");
-
-    printf("-- 1 -- \n");
-    c = icalcomponent_vanew(
-	ICAL_VEVENT_COMPONENT,
-	icalproperty_vanew_dtstart(icaltime_from_timet(tm1-hh,0),0),
-	icalproperty_vanew_dtend(icaltime_from_timet(tm2-hh,0),0),
-	0
-	);
-
-    cset =  icalclassify_find_overlaps(set,c);
-
-    printf("%s\n",icalcomponent_as_ical_string(cset));
-
-    printf("-- 2 -- \n");
-    c = icalcomponent_vanew(
-	ICAL_VEVENT_COMPONENT,
-	icalproperty_vanew_dtstart(icaltime_from_timet(tm1-hh,0),0),
-	icalproperty_vanew_dtend(icaltime_from_timet(tm2,0),0),
-	0
-	);
-
-    cset =  icalclassify_find_overlaps(set,c);
-
-    printf("%s\n",icalcomponent_as_ical_string(cset));
-
-    printf("-- 3 -- \n");
-    c = icalcomponent_vanew(
-	ICAL_VEVENT_COMPONENT,
-	icalproperty_vanew_dtstart(icaltime_from_timet(tm1+5*hh,0),0),
-	icalproperty_vanew_dtend(icaltime_from_timet(tm2+5*hh,0),0),
-	0
-	);
-
-    cset =  icalclassify_find_overlaps(set,c);
-
-    printf("%s\n",icalcomponent_as_ical_string(cset));
-
-#endif 
-
-}
-
-void test_fblist()
-{
-    icalspanlist *sl;
-    icalset* set = icalset_new_file("../../test-data/spanlist.ics");
-    struct icalperiodtype period;
-
-    sl = icalspanlist_new(set,
-		     icaltime_from_string("19970324T120000Z"),
-		     icaltime_from_string("19990424T020000Z"));
-		
-    printf("Restricted spanlist\n");
-    icalspanlist_dump(sl);
-
-    period= icalspanlist_next_free_time(sl,
-				      icaltime_from_string("19970801T120000Z"));
-
-
-    printf("Next Free time: %s\n",icaltime_as_ctime(period.start));
-    printf("                %s\n",icaltime_as_ctime(period.end));
-
-
-    icalspanlist_free(sl);
-
-    printf("Unrestricted spanlist\n");
-
-    sl = icalspanlist_new(set,
-		     icaltime_from_string("19970324T120000Z"),
-			  icaltime_null_time());
-		
-    printf("Restricted spanlist\n");
-
-    icalspanlist_dump(sl);
-
-    period= icalspanlist_next_free_time(sl,
-				      icaltime_from_string("19970801T120000Z"));
-
-
-    printf("Next Free time: %s\n",icaltime_as_ctime(period.start));
-    printf("                %s\n",icaltime_as_ctime(period.end));
-
-
-    icalspanlist_free(sl);
-
-
-}
-
-void test_convenience(){
-    
-    icalcomponent *c;
-    int duration;
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_dtstart(icaltime_from_string("19970801T120000")),
-	    icalproperty_new_dtend(icaltime_from_string("19970801T130000")),
-	    0
-	    ),
-	0);
-
-    printf("** 1 DTSTART and DTEND **\n%s\n\n",
-	   icalcomponent_as_ical_string(c));
-
-    duration = icaldurationtype_as_int(icalcomponent_get_duration(c))/60;
-
-    printf("Start: %s\n",ictt_as_string(icalcomponent_get_dtstart(c)));
-    printf("End:   %s\n",ictt_as_string(icalcomponent_get_dtend(c)));
-    printf("Dur:   %d m\n",duration);
-
-    icalcomponent_free(c);
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_dtstart(icaltime_from_string("19970801T120000Z")),
-	    icalproperty_new_duration(icaldurationtype_from_string("PT1H30M")),
-	    0
-	    ),
-	0);
-
-    printf("\n** 2 DTSTART and DURATION **\n%s\n\n",
-	   icalcomponent_as_ical_string(c));
-
-    duration = icaldurationtype_as_int(icalcomponent_get_duration(c))/60;
-
-    printf("Start: %s\n",ictt_as_string(icalcomponent_get_dtstart(c)));
-    printf("End:   %s\n",ictt_as_string(icalcomponent_get_dtend(c)));
-    printf("Dur:   %d m\n",duration);
-
-    icalcomponent_free(c);
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_dtstart(icaltime_from_string("19970801T120000")),
-	    icalproperty_new_dtend(icaltime_from_string("19970801T130000")),
-	    0
-	    ),
-	0);
-
-    icalcomponent_set_duration(c,icaldurationtype_from_string("PT1H30M"));
-
-    printf("** 3 DTSTART and DTEND, Set DURATION **\n%s\n\n",
-	   icalcomponent_as_ical_string(c));
-
-    duration = icaldurationtype_as_int(icalcomponent_get_duration(c))/60;
-
-    printf("Start: %s\n",ictt_as_string(icalcomponent_get_dtstart(c)));
-    printf("End:   %s\n",ictt_as_string(icalcomponent_get_dtend(c)));
-    printf("Dur:   %d m\n",duration);
-
-    icalcomponent_free(c);
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_dtstart(icaltime_from_string("19970801T120000Z")),
-	    icalproperty_new_duration(icaldurationtype_from_string("PT1H30M")),
-	    0
-	    ),
-	0);
-
-    icalcomponent_set_dtend(c,icaltime_from_string("19970801T133000Z"));
-
-    printf("\n** 4 DTSTART and DURATION, set DTEND **\n%s\n\n",
-	   icalcomponent_as_ical_string(c));
-
-    duration = icaldurationtype_as_int(icalcomponent_get_duration(c))/60;
-
-    printf("Start: %s\n",ictt_as_string(icalcomponent_get_dtstart(c)));
-    printf("End:   %s\n",ictt_as_string(icalcomponent_get_dtend(c)));
-    printf("Dur:   %d m\n",duration);
-
-    icalcomponent_free(c);
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    0
-	    ),
-	0);
-
-    icalcomponent_set_dtstart(c,icaltime_from_string("19970801T120000Z"));
-    icalcomponent_set_dtend(c,icaltime_from_string("19970801T133000Z"));
-
-    printf("\n** 5 Set DTSTART and DTEND **\n%s\n\n",
-	   icalcomponent_as_ical_string(c));
-
-
-    duration = icaldurationtype_as_int(icalcomponent_get_duration(c))/60;
-
-    printf("Start: %s\n",ictt_as_string(icalcomponent_get_dtstart(c)));
-    printf("End:   %s\n",ictt_as_string(icalcomponent_get_dtend(c)));
-    printf("Dur:   %d m\n",duration);
-
-    icalcomponent_free(c);
-
-    c = icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    0
-	    ),
-	0);
-
-
-    icalcomponent_set_dtstart(c,icaltime_from_string("19970801T120000Z"));
-    icalcomponent_set_duration(c,icaldurationtype_from_string("PT1H30M"));
-
-    printf("\n** 6 Set DTSTART and DURATION **\n%s\n\n",
-	   icalcomponent_as_ical_string(c));
-
-
-    duration = icaldurationtype_as_int(icalcomponent_get_duration(c))/60;
-
-    printf("Start: %s\n",ictt_as_string(icalcomponent_get_dtstart(c)));
-    printf("End:   %s\n",ictt_as_string(icalcomponent_get_dtend(c)));
-    printf("Dur:   %d m\n",duration);
-
-    icalcomponent_free(c);
-
-}
-
-void test_time_parser()
-{
-    struct icaltimetype tt;
-
-    icalerror_errors_are_fatal = 0;
-
-    tt = icaltime_from_string("19970101T1000");
-    assert(icaltime_is_null_time(tt));
-
-    tt = icaltime_from_string("19970101X100000");
-    assert(icaltime_is_null_time(tt));
-
-    tt = icaltime_from_string("19970101T100000");
-    assert(!icaltime_is_null_time(tt));
-    printf("%s\n",icaltime_as_ctime(tt));
-
-    tt = icaltime_from_string("19970101T100000Z");
-    assert(!icaltime_is_null_time(tt));
-    printf("%s\n",icaltime_as_ctime(tt));
-
-    tt = icaltime_from_string("19970101");
-    assert(!icaltime_is_null_time(tt));
-    printf("%s\n",icaltime_as_ctime(tt));
-
-    icalerror_errors_are_fatal = 1;
-
-}
-
-void test_recur_parser()
-{
-    struct icalrecurrencetype rt; 
-
-    printf("FREQ=YEARLY;UNTIL=20000131T090000Z;BYMONTH=1,2,3,4,8;BYYEARDAY=34,65,76,78;BYDAY=-1TU,3WE,-4FR,SU,SA\n");
-
-    rt = icalrecurrencetype_from_string("FREQ=YEARLY;UNTIL=20000131T090000Z;BYMONTH=1,2,3,4,8;BYYEARDAY=34,65,76,78;BYDAY=-1TU,3WE,-4FR,SU,SA");
-
-    printf("%s\n\n",icalrecurrencetype_as_string(&rt));
-
-    printf("FREQ=DAILY;COUNT=3;BYMONTH=1,2,3,4,8;BYYEARDAY=34,65,76,78;BYDAY=-1TU,3WE,-4FR,SU,S\n");
-
-    rt = icalrecurrencetype_from_string("FREQ=DAILY;COUNT=3;BYMONTH=1,2,3,4,8;BYYEARDAY=34,65,76,78;BYDAY=-1TU,3WE,-4FR,SU,SA");
-
-    printf("%s\n",icalrecurrencetype_as_string(&rt));
-
-}
-
-char* ical_strstr(const char *haystack, const char *needle){
-    return strstr(haystack,needle);
-}
-
-void test_doy()
-{
-    struct icaltimetype tt1, tt2;
-    short doy;
-
-    tt1 = icaltime_from_string("19950301");
-    doy = icaltime_day_of_year(tt1);
-    tt2 = icaltime_from_day_of_year(doy,1995);
-    printf("%d %s %s\n",doy, icaltime_as_ctime(tt1),icaltime_as_ctime(tt2));
-    assert(tt2.day == 1 && tt2.month == 3);
-    assert(doy == 60);
-
-    tt1 = icaltime_from_string("19960301");
-    doy = icaltime_day_of_year(tt1);
-    tt2 = icaltime_from_day_of_year(doy,1996);
-    printf("%d %s %s\n",doy, icaltime_as_ctime(tt1),icaltime_as_ctime(tt2));
-    assert(tt2.day == 1 && tt2.month == 3);
-    assert(doy == 61);
-
-    tt1 = icaltime_from_string("19970301");
-    doy = icaltime_day_of_year(tt1);
-    tt2 = icaltime_from_day_of_year(doy,1997);
-    printf("%d %s %s\n",doy, icaltime_as_ctime(tt1),icaltime_as_ctime(tt2));
-    assert(tt2.day == 1 && tt2.month == 3);
-    assert(doy == 60);
-
-}
-
-
-void test_x(){
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
- 
-#include <stdio.h>
-#include <stdlib.h>
-#include <ical.h>
- 
-    static const char test_icalcomp_str[] =
-"BEGIN:VEVENT\r\n"
-"RRULE\r\n"
-" ;X-EVOLUTION-ENDDATE=20030209T081500\r\n"
-" :FREQ=DAILY;COUNT=10;INTERVAL=6\r\n"
-"X-COMMENT;X-FOO=BAR: Booga\r\n"
-"END:VEVENT\r\n";
-  
-    icalcomponent *icalcomp;
-    icalproperty *prop;
-    struct icalrecurrencetype recur;
-    int n_errors;
-    
-    icalcomp = icalparser_parse_string ((char *) test_icalcomp_str);
-    if (!icalcomp) {
-	fprintf (stderr, "main(): could not parse the component\n");
-	exit (EXIT_FAILURE);
-    }
-    
-    printf("%s\n\n",icalcomponent_as_ical_string(icalcomp));
-
-    n_errors = icalcomponent_count_errors (icalcomp);
-    if (n_errors) {
-	icalproperty *p;
-	
-	for (p = icalcomponent_get_first_property (icalcomp,
-						   ICAL_XLICERROR_PROPERTY);
-	     p;
-	     p = icalcomponent_get_next_property (icalcomp,
-						  ICAL_XLICERROR_PROPERTY)) {
-	    char *str;
-	    
-	    str = icalproperty_as_ical_string (p);
-	    fprintf (stderr, "error: %s\n", str);
-	}
-    }
-    
-    prop = icalcomponent_get_first_property (icalcomp, ICAL_RRULE_PROPERTY);
-    if (!prop) {
-	fprintf (stderr, "main(): could not get the RRULE property");
-	exit (EXIT_FAILURE);
-    }
-    
-    recur = icalproperty_get_rrule (prop);
-    
-    printf("%s\n",icalrecurrencetype_as_string(&recur));
-
-}
-
-void test_gauge_sql() {
-
-
-    icalgauge *g;
-    
-    printf("\nSELECT DTSTART,DTEND,COMMENT FROM VEVENT,VTODO WHERE VEVENT.SUMMARY = 'Bongoa' AND SEQUENCE < 5\n");
-
-    g = icalgauge_new_from_sql("SELECT DTSTART,DTEND,COMMENT FROM VEVENT,VTODO WHERE VEVENT.SUMMARY = 'Bongoa' AND SEQUENCE < 5");
-    
-    icalgauge_dump(g);
-
-    icalgauge_free(g);
-
-    printf("\nSELECT * FROM VEVENT,VTODO WHERE VEVENT.SUMMARY = 'Bongoa' AND SEQUENCE < 5 OR METHOD != 'CREATE'\n");
-
-    g = icalgauge_new_from_sql("SELECT * FROM VEVENT,VTODO WHERE VEVENT.SUMMARY = 'Bongoa' AND SEQUENCE < 5 OR METHOD != 'CREATE'");
-    
-    icalgauge_dump(g);
-
-    icalgauge_free(g);
-
-}
-
-void test_gauge_compare() {
-
-    icalgauge *g;
-    icalcomponent *c;
-
-    /* Equality */
-
-    c =  icalcomponent_vanew(ICAL_VCALENDAR_COMPONENT,
-	      icalcomponent_vanew(ICAL_VEVENT_COMPONENT,
-		  icalproperty_new_dtstart(
-		      icaltime_from_string("20000101T000002")),0),0);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART = '20000101T000002'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART = '20000101T000002'\n");
-    assert(c!=0);
-    assert(g!=0);
-
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART = '20000101T000001'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART = '20000101T000001'\n");
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 0);
-
-    icalgauge_free(g);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART != '20000101T000003'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART != '20000101T000003'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-
-    /* Less than */
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART < '20000101T000003'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART < '20000101T000003'\n");
-
-    assert(icalgauge_compare(g,c) == 1);
-
-    assert(g!=0);
-    icalgauge_free(g);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART < '20000101T000002'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART < '20000101T000002'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 0);
-
-    icalgauge_free(g);
-
-    /* Greater than */
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART > '20000101T000001'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART > '20000101T000001'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART > '20000101T000002'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART > '20000101T000002'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 0);
-
-    icalgauge_free(g);
-
-
-    /* Greater than or Equal to */
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART >= '20000101T000002'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART >= '20000101T000002'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART >= '20000101T000003'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART >= '20000101T000003'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 0);
-
-    icalgauge_free(g);
-
-    /* Less than or Equal to */
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART <= '20000101T000002'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART <= '20000101T000002'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART <= '20000101T000001'");
-
-    printf("SELECT * FROM VEVENT WHERE DTSTART <= '20000101T000001'\n");
-
-
-    assert(g!=0);
-    assert(icalgauge_compare(g,c) == 0);
-
-    icalgauge_free(g);
-
-    icalcomponent_free(c);
-
-
-    /* Complex comparisions */
-
-    c =  icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalproperty_new_method(ICAL_METHOD_REQUEST),
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_dtstart(
-		icaltime_from_string("20000101T000002")),
-	    icalproperty_new_comment("foo"),
-	    icalcomponent_vanew(
-		ICAL_VALARM_COMPONENT,
-		icalproperty_new_dtstart(
-		    icaltime_from_string("20000101T120000")),
-		
-		0),
-	    0),
-	0);
-    
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE VALARM.DTSTART = '20000101T120000'");
-
-    printf("SELECT * FROM VEVENT WHERE VALARM.DTSTART = '20000101T120000'\n");
-
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE COMMENT = 'foo'");
-
-    printf("SELECT * FROM VEVENT WHERE COMMENT = 'foo'\n");
-
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-
-    g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE COMMENT = 'foo' AND  VALARM.DTSTART = '20000101T120000'");
-
-    printf("SELECT * FROM VEVENT WHERE COMMENT = 'foo' AND  VALARM.DTSTART = '20000101T120000'\n");
-
-    assert(icalgauge_compare(g,c) == 1);
-
-    icalgauge_free(g);
-
-    icalcomponent_free(c);
-    
-}
-
-icalcomponent* make_component(int i){
-
-    icalcomponent *c;
-
-    struct icaltimetype t = icaltime_from_string("20000101T120000Z");
-
-    t.day += i;
-
-    icaltime_normalize(t);
-
-    c =  icalcomponent_vanew(
-	ICAL_VCALENDAR_COMPONENT,
-	icalproperty_new_method(ICAL_METHOD_REQUEST),
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_dtstart(t),
-	    0),
-	0);
-
-    assert(c != 0);
-
-    return c;
-
-}
-void test_fileset()
-{
-    icalfileset *fs;
-    icalcomponent *c;
-    int i;
-    char *path = "test_fileset.ics";
-    icalgauge  *g = icalgauge_new_from_sql(
-	"SELECT * FROM VEVENT WHERE DTSTART > '20000103T120000Z' AND DTSTART <= '20000106T120000Z'");
-
-
-    unlink(path);
-
-    fs = icalfileset_new(path);
-    
-    assert(fs != 0);
-
-    for (i = 0; i!= 10; i++){
-	c = make_component(i);
-	icalfileset_add_component(fs,c);
-    }
-
-    icalfileset_commit(fs);
-
-    icalfileset_free(fs);
-    fs = icalfileset_new(path);
-
-
-    printf("== No Selections \n");
-
-    for (c = icalfileset_get_first_component(fs);
-	 c != 0;
-	 c = icalfileset_get_next_component(fs)){
-	struct icaltimetype t = icalcomponent_get_dtstart(c);
-
-	printf("%s\n",icaltime_as_ctime(t));
-    }
-
-    icalfileset_select(fs,g);
-
-    printf("\n== DTSTART > '20000103T120000Z' AND DTSTART <= '20000106T120000Z' \n");
-
-    for (c = icalfileset_get_first_component(fs);
-	 c != 0;
-	 c = icalfileset_get_next_component(fs)){
-	struct icaltimetype t = icalcomponent_get_dtstart(c);
-
-	printf("%s\n",icaltime_as_ctime(t));
-    }
-
-    icalfileset_free(fs);
-    
-}
-
-void microsleep(int us)
-{
-    struct timeval tv;
-
-    tv.tv_sec = 0;
-    tv.tv_usec = us;
-
-    select(0,0,0,0,&tv);
-
-}
-
-
-void test_file_locks()
-{
-    pid_t pid;
-    char *path = "test_fileset_locktest.ics";
-    icalfileset *fs;
-    icalcomponent *c, *c2;
-    struct icaldurationtype d;
-    int i;
-    int final,sec;
-
-    icalfileset_safe_saves = 1;
-
-    icalerror_clear_errno();
-
-    unlink(path);
-
-    fs = icalfileset_new(path);
-
-    if(icalfileset_get_first_component(fs)==0){
-	c = make_component(0);
-	
-	d = icaldurationtype_from_int(1);
-	
-	icalcomponent_set_duration(c,d);
-	
-	icalfileset_add_component(fs,c);
-	
-	c2 = icalcomponent_new_clone(c);
-	
-	icalfileset_add_component(fs,c2);
-	
-	icalfileset_commit(fs);
-    }
-    
-    icalfileset_free(fs);
-    
-    assert(icalerrno == ICAL_NO_ERROR);
-    
-    pid = fork();
-    
-    assert(pid >= 0);
-    
-    if(pid == 0){
-	/*child*/
-	int i;
-
-	microsleep(rand()/(RAND_MAX/100));
-
-	for(i = 0; i< 50; i++){
-	    fs = icalfileset_new(path);
-
-
-	    assert(fs != 0);
-
-	    c = icalfileset_get_first_component(fs);
-
-	    assert(c!=0);
-	   
-	    d = icalcomponent_get_duration(c);
-	    d = icaldurationtype_from_int(icaldurationtype_as_int(d)+1);
-	    
-	    icalcomponent_set_duration(c,d);
-	    icalcomponent_set_summary(c,"Child");	  
-  
-	    c2 = icalcomponent_new_clone(c);
-	    icalcomponent_set_summary(c2,"Child");
-	    icalfileset_add_component(fs,c2);
-
-	    icalfileset_mark(fs);
-	    icalfileset_commit(fs);
-
-	    icalfileset_free(fs);
-
-	    microsleep(rand()/(RAND_MAX/20));
-
-
-	}
-
-	exit(0);
-
-    } else {
-	/* parent */
-	int i;
-	
-	for(i = 0; i< 50; i++){
-	    fs = icalfileset_new(path);
-
-	    assert(fs != 0);
-
-	    c = icalfileset_get_first_component(fs);
-	    
-	    assert(c!=0);
-
-	    d = icalcomponent_get_duration(c);
-	    d = icaldurationtype_from_int(icaldurationtype_as_int(d)+1);
-	    
-	    icalcomponent_set_duration(c,d);
-	    icalcomponent_set_summary(c,"Parent");
-
-	    c2 = icalcomponent_new_clone(c);
-	    icalcomponent_set_summary(c2,"Parent");
-	    icalfileset_add_component(fs,c2);
-
-	    icalfileset_mark(fs);
-	    icalfileset_commit(fs);
-	    icalfileset_free(fs);
-
-	    putc('.',stdout);
-	    fflush(stdout);
-
-	}
-    }
-
-    assert(waitpid(pid,0,0)==pid);
-	
-
-    fs = icalfileset_new(path);
-    
-    i=1;
-
-    c = icalfileset_get_first_component(fs);
-    final = icaldurationtype_as_int(icalcomponent_get_duration(c));
-    for (c = icalfileset_get_next_component(fs);
-	 c != 0;
-	 c = icalfileset_get_next_component(fs)){
-	struct icaldurationtype d = icalcomponent_get_duration(c);
-	sec = icaldurationtype_as_int(d);
-
-	/*printf("%d,%d ",i,sec);*/
-	assert(i == sec);
-	i++;
-    }
-
-    printf("\nFinal: %d\n",final);
-
-    
-    assert(sec == final);
-}
-
-void test_action()
-{
-    icalcomponent *c;
-    icalproperty *p;
-    
-    static const char test_icalcomp_str[] =
-"BEGIN:VEVENT\n"
-"ACTION:EMAIL\n"
-"ACTION:PROCEDURE\n"
-"ACTION:AUDIO\n"
-"ACTION:FUBAR\n"
-"END:VEVENT\r\n";
-
-     
-    c = icalparser_parse_string ((char *) test_icalcomp_str);
-    if (!c) {
-	fprintf (stderr, "main(): could not parse the component\n");
-	exit (EXIT_FAILURE);
-    }
-    
-    printf("%s\n\n",icalcomponent_as_ical_string(c));
-
-    p = icalcomponent_get_first_property(c,ICAL_ACTION_PROPERTY);
-
-    assert(icalproperty_get_action(p) == ICAL_ACTION_EMAIL);
-
-    p = icalcomponent_get_next_property(c,ICAL_ACTION_PROPERTY);
-
-    assert(icalproperty_get_action(p) == ICAL_ACTION_PROCEDURE);
-
-    p = icalcomponent_get_next_property(c,ICAL_ACTION_PROPERTY);
-
-    assert(icalproperty_get_action(p) == ICAL_ACTION_AUDIO);
-
-    p = icalcomponent_get_next_property(c,ICAL_ACTION_PROPERTY);
-
-    assert(icalproperty_get_action(p) == ICAL_ACTION_X);
-    assert(regrstrcmp(icalvalue_get_x(icalproperty_get_value(p)), "FUBAR")==0);
-
-
-}
-
-        
-
-void test_trigger()
-{
-
-    struct icaltriggertype tr;
-    icalcomponent *c;
-    icalproperty *p;
-    char* str;
-    
-    static const char test_icalcomp_str[] =
-"BEGIN:VEVENT\n"
-"TRIGGER;VALUE=DATE-TIME:19980403T120000\n"
-"TRIGGER:-PT15M\n"
-"TRIGGER:19980403T120000\n"
-"TRIGGER;VALUE=DURATION:-PT15M\n"
-"END:VEVENT\r\n";
-  
-    
-    c = icalparser_parse_string ((char *) test_icalcomp_str);
-    if (!c) {
-	fprintf (stderr, "main(): could not parse the component\n");
-	exit (EXIT_FAILURE);
-    }
-    
-    printf("%s\n\n",icalcomponent_as_ical_string(c));
-
-    for(p = icalcomponent_get_first_property(c,ICAL_TRIGGER_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(c,ICAL_TRIGGER_PROPERTY)){
-	tr = icalproperty_get_trigger(p);
-
-	if(!icaltime_is_null_time(tr.time)){
-	    printf("value=DATE-TIME:%s\n", icaltime_as_ical_string(tr.time));
-	} else {
-	    printf("value=DURATION:%s\n", icaldurationtype_as_ical_string(tr.duration));
-	}   
-    }
-
-    /* Trigger, as a DATETIME */
-    tr.duration = icaldurationtype_null_duration();
-    tr.time = icaltime_from_string("19970101T120000");
-    p = icalproperty_new_trigger(tr);
-    str = icalproperty_as_ical_string(p);
-
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p);
-
-    /* TRIGGER, as a DURATION */
-    tr.time = icaltime_null_time();
-    tr.duration = icaldurationtype_from_string("P3DT3H50M45S");
-    p = icalproperty_new_trigger(tr);
-    str = icalproperty_as_ical_string(p);
-    
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DURATION\n :P3DT3H50M45S\n",str) == 0);
-    icalproperty_free(p);
-
-    /* TRIGGER, as a DATETIME, VALUE=DATETIME*/
-    tr.duration = icaldurationtype_null_duration();
-    tr.time = icaltime_from_string("19970101T120000");
-    p = icalproperty_new_trigger(tr);
-    icalproperty_add_parameter(p,icalparameter_new_value( ICAL_VALUE_DATETIME));
-    str = icalproperty_as_ical_string(p);
-
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p);
-
-    /*TRIGGER, as a DURATION, VALUE=DATETIME */
-    tr.time = icaltime_null_time();
-    tr.duration = icaldurationtype_from_string("P3DT3H50M45S");
-    p = icalproperty_new_trigger(tr);
-    icalproperty_add_parameter(p,icalparameter_new_value( ICAL_VALUE_DATETIME ));
-
-    str = icalproperty_as_ical_string(p);
-    
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DURATION\n :P3DT3H50M45S\n",str) == 0);
-    icalproperty_free(p);
-
-    /* TRIGGER, as a DATETIME, VALUE=DURATION*/
-    tr.duration = icaldurationtype_null_duration();
-    tr.time = icaltime_from_string("19970101T120000");
-    p = icalproperty_new_trigger(tr);
-    icalproperty_add_parameter(p,icalparameter_new_value( ICAL_VALUE_DURATION));
-    str = icalproperty_as_ical_string(p);
-
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p);
-
-    /*TRIGGER, as a DURATION, VALUE=DURATION */
-    tr.time = icaltime_null_time();
-    tr.duration = icaldurationtype_from_string("P3DT3H50M45S");
-    p = icalproperty_new_trigger(tr);
-    icalproperty_add_parameter(p,icalparameter_new_value( ICAL_VALUE_DURATION));
-
-    str = icalproperty_as_ical_string(p);
-    
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DURATION\n :P3DT3H50M45S\n",str) == 0);
-    icalproperty_free(p);
-
-
-   /* TRIGGER, as a DATETIME, VALUE=BINARY  */
-    tr.duration = icaldurationtype_null_duration();
-    tr.time = icaltime_from_string("19970101T120000");
-    p = icalproperty_new_trigger(tr);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_BINARY));
-    str = icalproperty_as_ical_string(p);
-
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p);
-
-    /*TRIGGER, as a DURATION, VALUE=BINARY   */
-    tr.time = icaltime_null_time();
-    tr.duration = icaldurationtype_from_string("P3DT3H50M45S");
-    p = icalproperty_new_trigger(tr);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_BINARY));
-
-    str = icalproperty_as_ical_string(p);
-    
-    printf("%s\n",str);
-    assert(regrstrcmp("TRIGGER\n ;VALUE=DURATION\n :P3DT3H50M45S\n",str) == 0);
-    icalproperty_free(p);
-
-
-
-}
-
-void test_rdate()
-{
-
-    struct icaldatetimeperiodtype dtp;
-    icalproperty *p;
-    char* str;
-    struct icalperiodtype period;
-
-    period.start = icaltime_from_string("19970101T120000");
-    period.end = icaltime_null_time();
-    period.duration = icaldurationtype_from_string("PT3H10M15S");
-
-    /* RDATE, as DATE-TIME */
-    dtp.time = icaltime_from_string("19970101T120000");
-    dtp.period = icalperiodtype_null_period();
-    p = icalproperty_new_rdate(dtp);
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p); 
-
-
-    /* RDATE, as PERIOD */
-    dtp.time = icaltime_null_time();
-    dtp.period = period;
-    p = icalproperty_new_rdate(dtp);
-
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=PERIOD\n :19970101T120000/PT3H10M15S\n",str) == 0);
-    icalproperty_free(p); 
-
-    /* RDATE, as DATE-TIME, VALUE=DATE-TIME */
-    dtp.time = icaltime_from_string("19970101T120000");
-    dtp.period = icalperiodtype_null_period();
-    p = icalproperty_new_rdate(dtp);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_DATETIME));
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p); 
-
-
-    /* RDATE, as PERIOD, VALUE=DATE-TIME */
-    dtp.time = icaltime_null_time();
-    dtp.period = period;
-    p = icalproperty_new_rdate(dtp);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_DATETIME));
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=PERIOD\n :19970101T120000/PT3H10M15S\n",str) == 0);
-    icalproperty_free(p); 
-
-
-    /* RDATE, as DATE-TIME, VALUE=PERIOD */
-    dtp.time = icaltime_from_string("19970101T120000");
-    dtp.period = icalperiodtype_null_period();
-    p = icalproperty_new_rdate(dtp);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_PERIOD));
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p); 
-
-
-    /* RDATE, as PERIOD, VALUE=PERIOD */
-    dtp.time = icaltime_null_time();
-    dtp.period = period;
-    p = icalproperty_new_rdate(dtp);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_PERIOD));
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=PERIOD\n :19970101T120000/PT3H10M15S\n",str) == 0);
-    icalproperty_free(p); 
-
-
-    /* RDATE, as DATE-TIME, VALUE=BINARY */
-    dtp.time = icaltime_from_string("19970101T120000");
-    dtp.period = icalperiodtype_null_period();
-    p = icalproperty_new_rdate(dtp);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_BINARY));
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=DATE-TIME\n :19970101T120000\n",str) == 0);
-    icalproperty_free(p); 
-
-
-    /* RDATE, as PERIOD, VALUE=BINARY */
-    dtp.time = icaltime_null_time();
-    dtp.period = period;
-    p = icalproperty_new_rdate(dtp);
-    icalproperty_add_parameter(p,icalparameter_new_value(ICAL_VALUE_BINARY));
-    str = icalproperty_as_ical_string(p);
-    printf("%s\n",str);
-    assert(regrstrcmp("RDATE\n ;VALUE=PERIOD\n :19970101T120000/PT3H10M15S\n",str) == 0);
-    icalproperty_free(p); 
-
-
-}
-
-
-void test_langbind()
-{
-    icalcomponent *c, *inner; 
-    icalproperty *p;
-
-    static const char test_str[] =
-"BEGIN:VEVENT\n"
-"ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:MAILTO:employee-A@host.com\n"
-"COMMENT: Comment that \n spans a line\n"
-"DTSTART:19970101T120000\n"
-"DTSTART:19970101T120000Z\n"
-"DTSTART:19970101\n"
-"DURATION:P3DT4H25M\n"
-"FREEBUSY:19970101T120000/19970101T120000\n"
-"FREEBUSY:19970101T120000/P3DT4H25M\n"
-"END:VEVENT\n";
-  
-
-    printf("%s\n",test_str);
-
-    c = icalparser_parse_string(test_str);
-    inner = icalcomponent_get_inner(c);
-
-
-    for(
-	p = icallangbind_get_first_property(inner,"ANY");
-	p != 0;
-	p = icallangbind_get_next_property(inner,"ANY")
-	) { 
-
-	printf("%s\n",icallangbind_property_eval_string(p,":"));
-    }
-
-
-
-    p = icalcomponent_get_first_property(inner,ICAL_ATTENDEE_PROPERTY);
-
-    icalproperty_set_parameter_from_string(p,"CUTYPE","INDIVIDUAL");
-
-    printf("%s\n",icalproperty_as_ical_string(p));
-        
-
-    icalproperty_set_value_from_string(p,"mary@foo.org","TEXT");
-
-    printf("%s\n",icalproperty_as_ical_string(p));
-
-}
-
-void test_property_parse()
-{
-    icalproperty *p;
-
-    p= icalproperty_new_from_string(
-                         "ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:MAILTO:employee-A@host.com");
-
-    assert (p !=  0);
-    printf("%s\n",icalproperty_as_ical_string(p));
-
-
-    p= icalproperty_new_from_string("DTSTART:19970101T120000Z\n");
-
-    assert (p !=  0);
-    printf("%s\n",icalproperty_as_ical_string(p));
-
-}
-
-
-void test_value_parameter() 
-{
-
-    icalcomponent *c;
-    icalproperty *p;
-    icalparameter *param;
-    
-    static const char test_icalcomp_str[] =
-"BEGIN:VEVENT\n"
-"DTSTART;VALUE=DATE-TIME:19971123T123000\n"
-"DTSTART;VALUE=DATE:19971123\n"
-"DTSTART;VALUE=FOO:19971123T123000\n"
-"END:VEVENT\n";
-     
-    c = icalparser_parse_string ((char *) test_icalcomp_str);
-    if (!c) {
-	fprintf (stderr, "main(): could not parse the component\n");
-	exit (EXIT_FAILURE);
-    }
-
-    printf("%s",icalcomponent_as_ical_string(c));
-
-    p = icalcomponent_get_first_property(c,ICAL_DTSTART_PROPERTY);
-    param = icalproperty_get_first_parameter(p,ICAL_VALUE_PARAMETER);
-    assert(icalparameter_get_value(param) == ICAL_VALUE_DATETIME);
-
-    p = icalcomponent_get_next_property(c,ICAL_DTSTART_PROPERTY);
-    param = icalproperty_get_first_parameter(p,ICAL_VALUE_PARAMETER);
-    assert(icalparameter_get_value(param) == ICAL_VALUE_DATE);
-
-}
-
-
-void test_x_property() 
-{
-    icalproperty *p;
-    
-    p= icalproperty_new_from_string(
-       "X-LIC-PROPERTY: This is a note");
-
-    printf("%s\n",icalproperty_as_ical_string(p));
-
-    assert(icalproperty_isa(p) == ICAL_X_PROPERTY);
-    assert(regrstrcmp(icalproperty_get_x_name(p),"X-LIC-PROPERTY")==0);
-    assert(regrstrcmp(icalproperty_get_x(p)," This is a note")==0);
-
-}
-
-int main(int argc, char *argv[])
-{
-    int c;
-    extern char *optarg;
-    extern int optopt;
-    int errflg=0;
-    char* program_name = strrchr(argv[0],'/');
-    int ttime=0, trecur=0,tspan=0, tmisc=0, tgauge = 0, tfile = 0,
-        tbasic = 0;
-
-    if(argc==1) {
-	ttime = trecur = tspan = tmisc = tgauge = tfile = tbasic = 1;
-    }
-
-    while ((c = getopt(argc, argv, "t:s:r:m:g:f:b:")) != -1) {
-	switch (c) {
-
-	    case 'b': {
-		tbasic = atoi(optarg);
-		break;
-	    }
-
-	    case 't': {
-		ttime = atoi(optarg);
-		break;
-	    }
-
-	    case 's': {
-		tspan = atoi(optarg);
-		break;
-	    }
-
-	    case 'r': {
-		trecur = atoi(optarg);
-		break;
-	    }
-
-
-	    case 'm': {
-		tmisc = atoi(optarg);
-		break;
-	    }
-	    
-
-	    case 'g': {
-		tgauge = atoi(optarg);
-		break;
-	    }
-
-	    case 'f': {
-		tfile = atoi(optarg);
-		break;
-	    }
-	    
-	    case ':': {/* Option given without an operand */
-		fprintf(stderr,
-			"%s: Option -%c requires an operand\n", 
-			program_name,optopt);
-		errflg++;
-		break;
-	    }
-	    case '?': {
-		errflg++;
-	    }
-	    
-	}
-	
-    } 
-
-
-    if(ttime==1 || ttime==2){
-	printf("\n------------Test time parser ----------\n");
-	test_time_parser();
-	    
-    }
-
-    if(ttime==1 || ttime==3){
-	printf("\n------------Test time----------------\n");
-	test_time();
-    }
- 
-    if(ttime==1 || ttime==4){
-	printf("\n------------Test day of year---------\n");
-	test_doy();
-    }
-	    
-    if(ttime==1 || ttime==5){
-	printf("\n------------Test duration---------------\n");
-	test_duration();
-    }	
-
-    if(ttime==1 || ttime==6){
-	printf("\n------------Test period ----------------\n");
-	test_period();
-    }	
-	
-
-	    
-    if(trecur==1 || trecur==2){
-	printf("\n------------Test recur parser ----------\n");
-	test_recur_parser();
-    }
-     
-    if(trecur==1 || trecur==3){
-	printf("\n------------Test recur---------------\n");
-	test_recur();
-    }
-
-    if(trecur==1 || trecur==4){
-	printf("\n------------Test parameter bug---------\n");
-	test_recur_parameter_bug();
-    }
-
-    if(trecur==1 || trecur==5){
-	printf("\n------------Test Array Expansion---------\n");
-	test_expand_recurrence();
-    }
-
-    
-
-
-    if(tspan==1 || tspan==2){
-	printf("\n------------Test FBlist------------\n");
-	test_fblist();
-    }
-
-    if(tspan==1 || tspan==3){
-	printf("\n------------Test Overlaps------------\n");
-	test_overlaps();
-    }
-
-    if(tspan==1 || tspan==4){
-	printf("\n------------Test Span----------------\n");
-	test_span();
-    }
-
-    if(tgauge == 1 || tgauge == 2){
-	printf("\n------------Test Gauge SQL----------------\n");
-	test_gauge_sql();
-    }	
-
-    if(tgauge == 1 || tgauge == 3){
-	printf("\n------------Test Gauge Compare--------------\n");
-	test_gauge_compare();
-    }	
-
-    if(tfile ==1 || tfile == 2){
-	printf("\n------------Test File Set--------------\n");
-	test_fileset();
-    }
-
-    if(tfile ==1 || tfile == 3){
-	printf("\n------------Test File Locks--------------\n");
-	test_file_locks();
-    }
-
-
-
-    if(tmisc == 1 || tmisc  == 2){
-	printf("\n------------Test X Props and Params--------\n");
-	test_x();
-    }
-
-    if(tmisc == 1 || tmisc  == 3){
-	printf("\n------------Test Trigger ------------------\n");
-	test_trigger();
-    }
-
-    if(tmisc == 1 || tmisc  == 4){
-
-	printf("\n------------Test Restriction---------------\n");
-	test_restriction();
-    }
-
-    if(tmisc == 1 || tmisc  == 5){
-
-	printf("\n------------Test RDATE---------------\n");
-	test_rdate();
-    }
-
-    if(tmisc == 1 || tmisc  == 6){
-
-	printf("\n------------Test language binding---------------\n");
-	test_langbind();
-    }
-
-
-    if(tmisc == 1 || tmisc  == 7){
-
-	printf("\n------------Test property parser---------------\n");
-	test_property_parse();
-    }
-
-    if(tmisc == 1 || tmisc  == 8){
-	printf("\n------------Test Action ------------------\n");
-	test_action();
-    }
-
-    if(tmisc == 1 || tmisc  == 9){
-	printf("\n------------Test Value Parameter ------------------\n");
-	test_value_parameter();
-    }
-
-    if(tmisc == 1 || tmisc  == 10){
-	printf("\n------------Test X property ------------------\n");
-	test_x_property();
-    }
-
-
-    if(tbasic == 1 || tbasic  == 2){
-	printf("\n------------Test Values---------------\n");
-	test_values();
-    }
-    
-    if(tbasic == 1 || tbasic  == 3){
-	printf("\n------------Test Parameters-----------\n");
-	test_parameters();
-    }
-
-    if(tbasic == 1 || tbasic  == 4){
-	printf("\n------------Test Properties-----------\n");
-	test_properties();
-    }
-
-    if(tbasic == 1 || tbasic  == 5){
-	printf("\n------------Test Components ----------\n");
-	test_components();
-    }	
-
-    if(tmisc == 1){
-
-	printf("\n------------Test Convenience ------------\n");
-	test_convenience();
-	
-	
-	printf("\n------------Test classify ---------------\n");
-	test_classify();
-	
-	
-	printf("\n------------Test Iterators-----------\n");
-	test_iterators();
-	
-	
-	printf("\n-----------Test request status-------\n");
-	test_requeststat();
-	
-	printf("\n------------Test strings---------------\n");
-	test_strings();
-	
-	printf("\n------------Test Compare---------------\n");
-	test_compare();
-	
-	printf("\n------------Create Components --------\n");
-	create_new_component();
-	
-	printf("\n----- Create Components with vaargs ---\n");
-	create_new_component_with_va_args();
-
-	printf("\n------------Test Memory---------------\n");
-	test_memory();
-    }
-
-    return 0;
-}
-
-
-
diff --git a/libical/src/test/storage.c b/libical/src/test/storage.c
deleted file mode 100644
index 2d8bc586f4..0000000000
--- a/libical/src/test/storage.c
+++ /dev/null
@@ -1,459 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: usecases.c
-  CREATOR: eric 03 April 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 usecases.c
-
-    
-  ======================================================================*/
-
-#include "ical.h"
-#include <assert.h>
-#include <string.h> /* for strdup */
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for printf */
-#include <time.h> /* for time() */
-#include "icalmemory.h"
-#include "icaldirset.h"
-#include "icalfileset.h"
-#include "icalerror.h"
-#include "icalrestriction.h"
-#include "icalcalendar.h"
-
-#define OUTPUT_FILE "filesetout.ics"
-
-char str[] = "BEGIN:VCALENDAR\n\
-PRODID:\"-//RDU Software//NONSGML HandCal//EN\"\n\
-VERSION:2.0\n\
-BEGIN:VTIMEZONE\n\
-TZID:US-Eastern\n\
-BEGIN:STANDARD\n\
-DTSTART:19981025T020000\n\
-RDATE:19981025T020000\n\
-TZOFFSETFROM:-0400\n\
-TZOFFSETTO:-0500\n\
-TZNAME:EST\n\
-END:STANDARD\n\
-BEGIN:DAYLIGHT\n\
-DTSTART:19990404T020000\n\
-RDATE:19990404T020000\n\
-TZOFFSETFROM:-0500\n\
-TZOFFSETTO:-0400\n\
-TZNAME:EDT\n\
-END:DAYLIGHT\n\
-END:VTIMEZONE\n\
-BEGIN:VEVENT\n\
-DTSTAMP:19980309T231000Z\n\
-UID:guid-1.host1.com\n\
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com\n\
-ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:MAILTO:employee-A@host.com\n\
-DESCRIPTION:Project XYZ Review Meeting\n\
-CATEGORIES:MEETING\n\
-CLASS:PUBLIC\n\
-CREATED:19980309T130000Z\n\
-SUMMARY:XYZ Project Review\n\
-DTSTART;TZID=US-Eastern:19980312T083000\n\
-DTEND;TZID=US-Eastern:19980312T093000\n\
-LOCATION:1CP Conference Room 4350\n\
-END:VEVENT\n\
-BEGIN:BOOGA\n\
-DTSTAMP:19980309T231000Z\n\
-X-LIC-FOO:Booga\n\
-DTSTOMP:19980309T231000Z\n\
-UID:guid-1.host1.com\n\
-END:BOOGA\n\
-END:VCALENDAR";
-
-char str2[] = "BEGIN:VCALENDAR\n\
-PRODID:\"-//RDU Software//NONSGML HandCal//EN\"\n\
-VERSION:2.0\n\
-BEGIN:VEVENT\n\
-DTSTAMP:19980309T231000Z\n\
-UID:guid-1.host1.com\n\
-ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com\n\
-ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:MAILTO:employee-A@host.com\n\
-DESCRIPTION:Project XYZ Review Meeting\n\
-CATEGORIES:MEETING\n\
-CLASS:PUBLIC\n\
-CREATED:19980309T130000Z\n\
-SUMMARY:XYZ Project Review\n\
-DTSTART;TZID=US-Eastern:19980312T083000\n\
-DTEND;TZID=US-Eastern:19980312T093000\n\
-LOCATION:1CP Conference Room 4350\n\
-END:VEVENT\n\
-END:VCALENDAR\n\
-";
-
-
-void test_fileset()
-{
-    icalfileset *cout;
-    int month = 0;
-    int count=0;
-    struct icaltimetype start, end;
-    icalcomponent *c,*clone, *itr;
-
-    start = icaltime_from_timet( time(0),0);
-    end = start;
-    end.hour++;
-
-    cout = icalfileset_new(OUTPUT_FILE);
-    assert(cout != 0);
-
-    c = icalparser_parse_string(str2);
-    assert(c != 0);
-
-    /* Add data to the file */
-
-    for(month = 1; month < 10; month++){
-	icalcomponent *event;
-	icalproperty *dtstart, *dtend;
-
-        cout = icalfileset_new(OUTPUT_FILE);
-        assert(cout != 0);
-
-	start.month = month; 
-	end.month = month;
-	
-	clone = icalcomponent_new_clone(c);
-	assert(clone !=0);
-	event = icalcomponent_get_first_component(clone,ICAL_VEVENT_COMPONENT);
-	assert(event != 0);
-
-	dtstart = icalcomponent_get_first_property(event,ICAL_DTSTART_PROPERTY);
-	assert(dtstart!=0);
-	icalproperty_set_dtstart(dtstart,start);
-        
-	dtend = icalcomponent_get_first_property(event,ICAL_DTEND_PROPERTY);
-	assert(dtend!=0);
-	icalproperty_set_dtend(dtend,end);
-	
-	icalfileset_add_component(cout,clone);
-	icalfileset_commit(cout);
-
-        icalfileset_free(cout);
-
-    }
-
-
-    /* Print them out */
-
-
-    cout = icalfileset_new(OUTPUT_FILE);
-    assert(cout != 0);
-    
-    for (itr = icalfileset_get_first_component(cout);
-         itr != 0;
-         itr = icalfileset_get_next_component(cout)){
-
-      icalcomponent *event;
-      icalproperty *dtstart, *dtend;
-
-      count++;
-
-      event = icalcomponent_get_first_component(itr,ICAL_VEVENT_COMPONENT);
-
-      dtstart = icalcomponent_get_first_property(event,ICAL_DTSTART_PROPERTY);
-      dtend = icalcomponent_get_first_property(event,ICAL_DTEND_PROPERTY);
-      
-      printf("%d %s %s\n",count, icalproperty_as_ical_string(dtstart),
-             icalproperty_as_ical_string(dtend));
-
-    }
-
-    /* Remove all of them */
-
-    icalfileset_free(cout);
-
-    cout = icalfileset_new(OUTPUT_FILE);
-    assert(cout != 0);
-    
-    for (itr = icalfileset_get_first_component(cout);
-         itr != 0;
-         itr = icalfileset_get_next_component(cout)){
-
-
-      icalfileset_remove_component(cout, itr);
-    }
-
-    icalfileset_free(cout);
-
-
-    /* Print them out again */
-
-    cout = icalfileset_new(OUTPUT_FILE);
-    assert(cout != 0);
-    count =0;
-    
-    for (itr = icalfileset_get_first_component(cout);
-         itr != 0;
-         itr = icalfileset_get_next_component(cout)){
-
-      icalcomponent *event;
-      icalproperty *dtstart, *dtend;
-
-      count++;
-
-      event = icalcomponent_get_first_component(itr,ICAL_VEVENT_COMPONENT);
-
-      dtstart = icalcomponent_get_first_property(event,ICAL_DTSTART_PROPERTY);
-      dtend = icalcomponent_get_first_property(event,ICAL_DTEND_PROPERTY);
-      
-      printf("%d %s %s\n",count, icalproperty_as_ical_string(dtstart),
-             icalproperty_as_ical_string(dtend));
-
-    }
-
-    icalfileset_free(cout);
-
-
-}
-
-
-
-int test_dirset()
-{
-
-    icalcomponent *c, *gauge;
-    icalerrorenum error;
-    icalcomponent *itr;
-    icalfileset* cluster;
-    struct icalperiodtype rtime;
-    icaldirset *s = icaldirset_new("store");
-    int i;
-
-    assert(s != 0);
-
-    rtime.start = icaltime_from_timet( time(0),0);
-
-    cluster = icalfileset_new(OUTPUT_FILE);
-
-    assert(cluster != 0);
-
-#define NUMCOMP 4
-
-    /* Duplicate every component in the cluster NUMCOMP times */
-
-    icalerror_clear_errno();
-
-    for (i = 1; i<NUMCOMP+1; i++){
-
-	/*rtime.start.month = i%12;*/
-	rtime.start.month = i;
-	rtime.end = rtime.start;
-	rtime.end.hour++;
-	
-	for (itr = icalfileset_get_first_component(cluster);
-	     itr != 0;
-	     itr = icalfileset_get_next_component(cluster)){
-	    icalcomponent *clone, *inner;
-	    icalproperty *p;
-
-	    inner = icalcomponent_get_first_component(itr,ICAL_VEVENT_COMPONENT);
-            if (inner == 0){
-              continue;
-            }
-
-	    /* Change the dtstart and dtend times in the component
-               pointed to by Itr*/
-
-	    clone = icalcomponent_new_clone(itr);
-	    inner = icalcomponent_get_first_component(itr,ICAL_VEVENT_COMPONENT);
-
-	    assert(icalerrno == ICAL_NO_ERROR);
-	    assert(inner !=0);
-
-	    /* DTSTART*/
-	    p = icalcomponent_get_first_property(inner,ICAL_DTSTART_PROPERTY);
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	    if (p == 0){
-		p = icalproperty_new_dtstart(rtime.start);
-		icalcomponent_add_property(inner,p);
-	    } else {
-		icalproperty_set_dtstart(p,rtime.start);
-	    }
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	    /* DTEND*/
-	    p = icalcomponent_get_first_property(inner,ICAL_DTEND_PROPERTY);
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	    if (p == 0){
-		p = icalproperty_new_dtstart(rtime.end);
-		icalcomponent_add_property(inner,p);
-	    } else {
-		icalproperty_set_dtstart(p,rtime.end);
-	    }
-	    assert(icalerrno  == ICAL_NO_ERROR);
-	    
-	    printf("\n----------\n%s\n---------\n",icalcomponent_as_ical_string(inner));
-
-	    error = icaldirset_add_component(s,
-					     icalcomponent_new_clone(itr));
-	    
-	    assert(icalerrno  == ICAL_NO_ERROR);
-
-	}
-
-    }
-    
-    gauge = 
-	icalcomponent_vanew(
-	    ICAL_VCALENDAR_COMPONENT,
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,  
-		icalproperty_vanew_summary(
-		    "Submit Income Taxes",
-		    icalparameter_new_xliccomparetype(ICAL_XLICCOMPARETYPE_EQUAL),
-		    0),
-		0),
-	    icalcomponent_vanew(
-		ICAL_VEVENT_COMPONENT,  
-		icalproperty_vanew_summary(
-		    "Bastille Day Party",
-		    icalparameter_new_xliccomparetype(ICAL_XLICCOMPARETYPE_EQUAL),
-		    0),
-		0),
-	    0);
-
-#if 0
-
-
-    icaldirset_select(s,gauge);
-
-    for(c = icaldirset_first(s); c != 0; c = icaldirset_next(s)){
-	
-	printf("Got one! (%d)\n", count++);
-	
-	if (c != 0){
-	    printf("%s", icalcomponent_as_ical_string(c));;
-	    if (icaldirset_store(s2,c) == 0){
-		printf("Failed to write!\n");
-	    }
-	    icalcomponent_free(c);
-	} else {
-	    printf("Failed to get component\n");
-	}
-    }
-
-
-    icaldirset_free(s2);
-#endif
-
-
-    for(c = icaldirset_get_first_component(s); 
-	c != 0; 
-	c = icaldirset_get_next_component(s)){
-
-	if (c != 0){
-	    printf("%s", icalcomponent_as_ical_string(c));;
-	} else {
-	    printf("Failed to get component\n");
-	}
-
-    }
-
-    /* Remove all of the components */
-    i=0;
-    while((c=icaldirset_get_current_component(s)) != 0 ){
-	i++;
-
-	icaldirset_remove_component(s,c);
-    }
-	
-
-    icaldirset_free(s);
-    return 0;
-}
-
-#if 0
-void test_calendar()
-{
-    icalcomponent *comp;
-    icalfileset *c;
-    icaldirset *s;
-    icalcalendar* calendar = icalcalendar_new("calendar");
-    icalerrorenum error;
-    struct icaltimetype atime = icaltime_from_timet( time(0),0,0);
-
-    comp = icalcomponent_vanew(
-	ICAL_VEVENT_COMPONENT,
-	icalproperty_new_version("2.0"),
-	icalproperty_new_description("This is an event"),
-	icalproperty_new_dtstart(atime),
-	icalproperty_vanew_comment(
-	    "Another Comment",
-	    icalparameter_new_cn("A Common Name 1"),
-	    icalparameter_new_cn("A Common Name 2"),
-	    icalparameter_new_cn("A Common Name 3"),
-		icalparameter_new_cn("A Common Name 4"),
-	    0),
-	icalproperty_vanew_xlicerror(
-	    "This is only a test",
-	    icalparameter_new_xlicerrortype(ICAL_XLICERRORTYPE_COMPONENTPARSEERROR),
-	    0),
-	
-	0);
-	
-	
-    s = icalcalendar_get_booked(calendar);
-
-    error = icaldirset_add_component(s,comp);
-    
-    assert(error == ICAL_NO_ERROR);
-
-    c = icalcalendar_get_properties(calendar);
-
-    error = icalfileset_add_component(c,icalcomponent_new_clone(comp));
-
-    assert(error == ICAL_NO_ERROR);
-
-    icalcalendar_free(calendar);
-
-}
-#endif
-
-
-int main(int argc, char *argv[])
-{
-
-/*    printf("\n------------Test File Set---------------\n");
-      test_fileset(); */
-
-    printf("\n------------Test Dir Set---------------\n");
-    test_dirset();
-
-#if 0    
-
-
-    printf("\n------------Test Calendar---------------\n");
-    test_calendar();
-
-#endif
-
-    return 0;
-}
-
-
-
diff --git a/libical/src/test/stow.c b/libical/src/test/stow.c
deleted file mode 100644
index e676c677f3..0000000000
--- a/libical/src/test/stow.c
+++ /dev/null
@@ -1,866 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: stow.c
-  CREATOR: eric 29 April 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000 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 Initial Developer of the Original Code is Eric Busboom
-
- ======================================================================*/
-
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <limits.h> /* for PATH_MAX */
-#include <assert.h>
-#include <stdlib.h>
-#include <sys/utsname.h> /* for uname */
-#include <sys/stat.h> /* for stat */
-#include <unistd.h> /* for stat, getpid, getopt */
-#include <pwd.h> /* For getpwent */
-#include <sys/types.h> /* For getpwent */
-#include <ctype.h> /* for tolower */
-
-#include "ical.h"
-#include "icalcalendar.h"
-#include "icalfileset.h"
-#include "icalmime.h"
-
-char* program_name;
-#define TMPSIZE 2048
-#define SENDMAIL "/usr/lib/sendmail -t"
-
-void usage(char *message);
-
-#ifndef PATH_MAX
-#define PATH_MAX 256 /* HACK */
-#endif
-
-
-enum options {
-    STORE_IN_FILE,
-    STORE_IN_DB,
-    INPUT_IS_MIME,
-    INPUT_IS_ICAL,
-    INPUT_FROM_STDIN,
-    INPUT_FROM_FILE,
-    ERRORS_TO_STDOUT,
-    ERRORS_TO_ORGANIZER
-};
-
-struct options_struct
-{
-	enum options storage;
-	enum options input_type;
-	enum options input_source;
-	enum options errors;
-	char* input_file;
-	char* calid;
-	char* output_file;
-};
-
-
-enum file_type
-{
-    ERROR,
-    NO_FILE,
-    DIRECTORY,
-    REGULAR,
-    OTHER
-};
-
-enum file_type test_file(char *path)
-{
-    struct stat sbuf;
-    enum file_type type;
-    
-    errno = 0;
-
-    /* Check if the path already exists and if it is a directory*/
-    if (stat(path,&sbuf) != 0){
-	
-	/* A file by the given name does not exist, or there was
-           another error */
-	if(errno == ENOENT)
-	{
-	    type = NO_FILE;
-	} else {
-	    type = ERROR;
-	}
-
-    } else {
-	/* A file by the given name exists, but is it a directory? */
-	
-	if (S_ISDIR(sbuf.st_mode)){ 
-	    type = DIRECTORY;
-	} else if(S_ISREG(sbuf.st_mode)){ 
-	    type = REGULAR;
-	} else {
-	    type = OTHER;
-	}
-    }
-
-    return type;
-}
-
-char* lowercase(const char* str)
-{
-    char* p = 0;
-    char* new = strdup(str);
-
-    if(str ==0){
-	return 0;
-    }
-
-    for(p = new; *p!=0; p++){
-	*p = tolower(*p);
-    }
-
-    return new;
-}
-
-#if 0
-char* get_local_attendee(struct options_struct *opt)
-{
-    char attendee[PATH_MAX];
-
-    if(opt->calid){
-
-	strncpy(attendee,opt->calid,PATH_MAX);
-
-    } else {
-	
-	char* user = getenv("USER");
-	struct utsname uts;
-	uname(&utget_option);
-	/* HACK nodename may not be a fully qualified domain name */
-	snprintf(attendee,PATH_MAX,"%s@%s",user,uts.nodename);
-   
-    }
-
-    return lowercase(attendee);
-}
-#endif
-
-
-icalcomponent* get_first_real_component(icalcomponent *comp)
-{
-    icalcomponent *c;
-
-    for(c = icalcomponent_get_first_component(comp,ICAL_ANY_COMPONENT);
-	c != 0;
-	c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT)){
-	if (icalcomponent_isa(c) == ICAL_VEVENT_COMPONENT ||
-	    icalcomponent_isa(c) == ICAL_VTODO_COMPONENT ||
-	    icalcomponent_isa(c) == ICAL_VJOURNAL_COMPONENT )
-	{
-	    return c;
-	}
-    }
-
-    return 0;
-}
-
-
-
-char* make_mime(char* to, const char* from, const char* subject, 
-		const char* text_message, const char* method, 
-		const char* ical_message)
-{
-    size_t size = strlen(to)+strlen(from)+strlen(subject)+
-	strlen(text_message)+ strlen(ical_message)+TMPSIZE;
-
-    char mime_part_1[TMPSIZE];
-    char mime_part_2[TMPSIZE];
-    char content_id[TMPSIZE];
-    char boundary[TMPSIZE];
-    struct utsname uts;
-    char* m;
-
-
-    if ((m = malloc(sizeof(char)*size)) == 0){
-	fprintf(stderr,"%s: Can't allocate memory: %s\n",program_name,strerror(errno));
-	exit(1);
-    }
-
-    uname(&uts);
-
-    srand(time(0)<<getpid());
-    sprintf(content_id,"%d-%d@%s",(int)time(0),rand(),uts.nodename);
-    sprintf(boundary,"%d-%d-%s",(int)time(0),rand(),uts.nodename);
-
-    sprintf(mime_part_1,"Content-ID: %s\n\
-Content-type: text/plain\n\
-Content-Description: Text description of error message\n\n\
-%s\n\n--%s",
-	    content_id,text_message,boundary);
-
-    if(ical_message != 0 && method != 0){
-	sprintf(mime_part_2,"Content-ID: %s\n\
-Content-type: text/calendar; method=%s\n\
-Content-Description: iCal component reply\n\n\
-%s\n\n--%s--",
-		content_id,method,ical_message,boundary);
-    }
-
-    sprintf(m,"To: %s\n\
-From: %s\n\
-Subject: %s\n\
-MIME-Version: 1.0\n\
-Content-ID: %s\n\
-Content-Type:  multipart/mixed; boundary=\"%s\"\n\
-\n\
- This is a multimedia message in MIME format\n\
-\n\
---%s\n\
-%s\n\
-",
-	    to,from,subject,content_id,boundary,boundary,
-	    mime_part_1);
-
-    if(ical_message != 0 && method != 0){
-	strcat(m, mime_part_2);
-    } else {
-	strcat(m,"--\n");
-    }
-
-    return m;
-}
-
-/* The incoming component had fatal errors */
-void return_failure(icalcomponent* comp,  char* message, 
-		    struct options_struct *opt)
-{
-    char* local_attendee = opt->calid;
-    FILE* p;
-
-    icalcomponent  *inner = get_first_real_component(comp);
-
-    icalproperty *organizer_prop = icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY);
-    const char *organizer = icalproperty_get_organizer(organizer_prop);
-
-    organizer += 7;
-
-    if (opt->errors == ERRORS_TO_ORGANIZER){
-	p = popen(SENDMAIL,"w");
-    } else {
-	p = stdout;
-    }
-
-    if(p == 0){
-	fprintf(stderr,
-		"%s: fatal. Could not open pipe to sendmail (\"%s\") \n",
-		program_name,SENDMAIL);
-	exit(1);
-     }
-   
-    fputs(make_mime(organizer, local_attendee, "iMIP error", 
-		    message, "reply",
-		    icalcomponent_as_ical_string(comp)),p);
-    
-    if (opt->errors == ERRORS_TO_ORGANIZER){ 
-	pclose(p);
-    }   
-}
-
-/* The program had a fatal error and could not process the incoming component*/
-void return_error(icalcomponent* comp,  char* message, struct options_struct *opt)
-{
-    
-
-    fputs(make_mime("Dest", "Source", "iMIP system failure", 
-		    message, 0,0),stdout);
-
-}
-
-icalcomponent* make_reply(icalcomponent *comp, icalproperty *return_status, 
-			 struct options_struct *opt)
-
-{
-    icalcomponent *reply, *rinner;
-    icalcomponent  *inner = get_first_real_component(comp);
-    icalproperty *p=0;
-    char* local_attendee = opt->calid;
-    char attendee[TMPSIZE];
-
-    char prodid[TMPSIZE];
-
-    snprintf(attendee,TMPSIZE,"mailto:%s",local_attendee);
-
-    snprintf(prodid,TMPSIZE,"-//Softwarestudio.org//%s version %s//EN",ICAL_PACKAGE,ICAL_VERSION);
-
-    /* Create the base component */
-    reply = icalcomponent_vanew( 
-	ICAL_VCALENDAR_COMPONENT,
-	icalproperty_new_version(strdup("2.0")),
-	icalproperty_new_prodid(strdup(prodid)),
-	icalproperty_new_method(ICAL_METHOD_REPLY),
-	icalcomponent_vanew(
-	    ICAL_VEVENT_COMPONENT,
-	    icalproperty_new_clone(
-		icalcomponent_get_first_property(inner,ICAL_DTSTAMP_PROPERTY)),
-	    icalproperty_new_clone(
-		icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY)),
-	    icalproperty_new_clone(
-		icalcomponent_get_first_property(inner,ICAL_UID_PROPERTY)),
-	    icalproperty_new_attendee(attendee),
-	    0),
-	0);
-
-    
-    /* Convert errors into request-status properties and transfers
-       them to the reply component */
-
-    icalcomponent_convert_errors(comp);
-
-    rinner = get_first_real_component(reply);
-
-    for(p = icalcomponent_get_first_property(inner,
-					     ICAL_REQUESTSTATUS_PROPERTY);
-	p != 0;
-	p = icalcomponent_get_next_property(inner,
-					    ICAL_REQUESTSTATUS_PROPERTY)){
-	
-	icalcomponent_add_property(rinner,icalproperty_new_clone(p));
-    }
-		
-    if(return_status != 0){
-	icalcomponent_add_property(rinner, return_status);
-    }
-        
-    return reply;
-	    
-}
-
-int check_attendee(icalproperty *p,  struct options_struct *opt){  
-    const char* s = icalproperty_get_attendee(p);
-    char* lower_attendee = lowercase(s);
-    char* local_attendee = opt->calid;
-    
-    /* Check that attendee begins with "mailto:" */
-    if (strncmp(lower_attendee,"mailto:",7) == 0){
-	/* skip over the mailto: part */
-	lower_attendee += 7;
-	
-	if(strcmp(lower_attendee,local_attendee) == 0){
-	    return 1;
-	}
-	
-	lower_attendee -= 7;
-	
-	free(lower_attendee);
-    } 
-
-    return 0;
-}
-
-char static_component_error_str[PATH_MAX];
-char* check_component(icalcomponent* comp,  icalproperty **return_status,
-		      struct options_struct *opt)
-{
-    char* component_error_str=0;
-    icalcomponent* inner;
-    int errors = 0;
-    icalproperty *p;
-    int found_attendee = 0;
-
-    *return_status = 0;
-
-    /* This do/while loop only executes once because it is being used
-       to fake exceptions */
-
-    do {
-
-	/* Check that we actually got a component */
-	if(comp == 0){
-	    strcpy(static_component_error_str,
-		   "Did not find a component");
-	    component_error_str = static_component_error_str;
-	    break;
-	}
-
-	/* Check that the root component is a VCALENDAR */
-	if(icalcomponent_isa(comp) != ICAL_VCALENDAR_COMPONENT){
-	    strcpy(static_component_error_str,
-		   "Root component is not a VCALENDAR");
-	    component_error_str = static_component_error_str;
-	    break;
-	}
-
-
-	/* Check that the component has a METHOD */
-
-	if (icalcomponent_get_first_property(comp,ICAL_METHOD_PROPERTY) == 0)
-	{
-	    strcpy(static_component_error_str,
-		   "Component does not have a METHOD property");
-	    component_error_str = static_component_error_str;
-	    break;
-	}
-	
-	inner = get_first_real_component(comp);
-
-
-	/* Check that the compopnent has an organizer */
-	if(icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY) == 0){
-	    fprintf(stderr,"%s: fatal. Component does not have an ORGANIZER property\n",program_name);
-
-	    exit(1);
-	}
-
-
-	/* Check for this user as an attendee or organizer */
-
-	for(p = icalcomponent_get_first_property(inner,ICAL_ATTENDEE_PROPERTY);
-	    p != 0;
-	    p = icalcomponent_get_next_property(inner,ICAL_ATTENDEE_PROPERTY)){
-	  
-	    found_attendee += check_attendee(p,opt);
-	}
-
-	for(p = icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY);
-	    p != 0;
-	    p = icalcomponent_get_next_property(inner,ICAL_ORGANIZER_PROPERTY)){
-	  
-	    found_attendee += check_attendee(p,opt);
-	}
-		
-	if (found_attendee == 0){
-	    struct icalreqstattype rs;
-	    char* rs_string;
-	    memset(static_component_error_str,0,PATH_MAX);
-
-	    snprintf(static_component_error_str,PATH_MAX,
-		   "This target user (%s) is not listed as an attendee or organizer",
-		    opt->calid );
-	    component_error_str = static_component_error_str;
-
-	    rs.code = ICAL_3_7_INVCU_STATUS;
-	    rs.desc = 0;
-	    rs.debug  = component_error_str;    
-	    rs_string = icalreqstattype_as_string(rs);
-
-	    *return_status = icalproperty_new_requeststatus(rs_string);
-
-	    break;
-	}
-
-
-
-	/* Check that the component passes iTIP restrictions */
-	
-	errors = icalcomponent_count_errors(comp);
-	icalrestriction_check(comp);
-	
-	if(errors != icalcomponent_count_errors(comp)){
-	    snprintf(static_component_error_str,PATH_MAX,
-		   "The component does not conform to iTIP restrictions.\n Here is the original component; look at the X-LIC-ERROR properties\nfor details\n\n%s",icalcomponent_as_ical_string(comp));
-	    component_error_str = static_component_error_str;
-	    break;
-	}
-
-
-
-    } while(0);
-
-    return component_error_str;
-}
-
-
-void usage(char *message)
-{
-    fprintf(stderr,"Usage: %s [-emdcn] [-i inputfile] [-o outputfile] [-u calid]\n",program_name);
-    fprintf(stderr,"-e\tInput data is encapsulated in a MIME Message \n\
--m\tInput is raw iCal \n\
--i\tSpecify input file. Otherwise, input comes from stdin\n\
--o\tSpecify file to save incoming message to\n\
--d\tSpecify database to send data to\n\
--u\tSet the calid to store the data to\n\
--n\tSend errors to stdout instead of organizer\n\
-");
-
-}
-
-
-void get_options(int argc, char* argv[], struct options_struct *opt)
-{
-    int c;
-    extern char *optarg;
-    extern int optind, optopt;
-    int errflg=0;
-
-    opt->storage = STORE_IN_FILE;
-    opt->input_source = INPUT_FROM_STDIN;
-    opt->input_type = INPUT_IS_ICAL;
-    opt->input_file = 0;
-    opt->errors = ERRORS_TO_ORGANIZER;
-    opt->calid = 0;
-    opt->output_file = 0;
-
-
-    while ((c = getopt(argc, argv, "nemu:o:d:b:c:i:")) != -1) {
-             switch (c) {
-		 case 'e': { /* Input data is MIME encapsulated */
-		     opt->input_type = INPUT_IS_MIME;
-		     break;
-		 }
-		 case 'm': { /* Input is iCal. Default*/
-		     opt->input_type = INPUT_IS_ICAL;
-		     break;
-		 }
-		 case 'i': { /* Input comes from named file */
-		     opt->input_source = INPUT_FROM_FILE;
-		     opt->input_file = strdup(optarg);
-		     break;
-		 }
-		 case 'o': { /* Output goes to named file. Default*/
-		     opt->output_file = strdup(optarg);
-		     opt->storage = STORE_IN_FILE;
-		     break;
-		 }
-		 case 'd': { /* Output goes to database */
-		     fprintf(stderr,"%s: option -d is unimplmented\n",program_name);
-		     opt->storage = STORE_IN_DB;
-		     errflg++;
-		     break;
-		 }
-		 case 'c': {
-
-		     break;
-		 }
-		 case 'u': { /* Set the calid for the output database or
-				file. Default is user name of user running
-				program */
-		     opt->calid = strdup(optarg);
-		     break;
-		 }
-
-		 case 'n': { /* Dump error to stdout. Default is to
-		                send error to the organizer specified
-		                in the iCal data */
-		     opt->errors = ERRORS_TO_STDOUT;
-		     break;
-		 }
-
-		 case ':': {/* Option given without an operand */
-		     fprintf(stderr,
-			     "%s: Option -%c requires an operand\n", 
-			     program_name,optopt);
-		     errflg++;
-		     break;
-		 }
-		 case '?': {
-		     errflg++;
-		 }
-
-             }
-
-	     if (errflg >0){
-		 usage("");
-		 exit(1);
-	     }
-    } 
-
-    if(opt->calid == 0){
-	/* If no calid specified, use username */
-	char attendee[PATH_MAX];
-	char* user = getenv("USER");
-	struct utsname uts;
-	uname(&uts);
-	/* HACK nodename may not be a fully qualified domain name */
-	snprintf(attendee,PATH_MAX,"%s@%s",user,uts.nodename);
-
-	opt->calid = lowercase(attendee);
-    }
-
-    if(opt->storage == STORE_IN_FILE &&
-	opt->output_file ==0){
-	char file[PATH_MAX];
-	char* user = getenv("USER");
-	struct passwd *pw;
-
-	if(!user){
-	    fprintf(stderr,"%s: Can't get username. Try explicitly specifing the output file with -o", program_name);
-	    exit(1);
-	}
-	
-	/* Find password entry for user */
-	while( (pw = getpwent())!=0){
-	    if(strcmp(user,pw->pw_name)==0){
-		break;
-	    }
-	}
-	    
-	if(pw==0){
-	    fprintf(stderr,"%s: Can't get get password entry for user \"%s\" Try explicitly specifing the output file with -o", 
-		    program_name,user);
-	    exit(1);
-	}
-
-	if(pw->pw_dir==0){
-	    fprintf(stderr,"%s: User \"%s\" has no home directory. Try explicitly specifing the output file with -o", 
-		    program_name, user);
-	    exit(1);
-	}
-
-	snprintf(file,PATH_MAX,"%s/.facs/%s",pw->pw_dir,opt->calid);
-
-	opt->output_file = strdup(file);
-    }
-
-
-    /* Now try to create the calendar directory if it does
-       not exist */
-
-     if(opt->storage == STORE_IN_FILE ) {
-	char * p;
-	char* facspath = strdup(opt->output_file);
-	enum file_type type;
-
-	/* Cut off the last slash to make it just a directoy */
-
-	p = strrchr(facspath,'/');
-
-	if (p == 0){
-	   fprintf(stderr,"%s: Invalid calendar filename \"%s\"", 
-		    program_name,facspath);
-	   exit(1);
-	}   
-	
-	*p='\0';
-
-	type = test_file(facspath);
-
-	errno = 0;
-	if (type == NO_FILE){
-	    
-	    if(mkdir(facspath,0775) != 0){
-		fprintf(stderr,
-			"%s: Failed to create calendar directory %s: %s\n",
-			program_name,facspath, strerror(errno));
-		exit(1);
-	    } else {
-		fprintf(stderr,"%s: Creating calendar directory %s\n",
-			program_name,facspath);
-	    }
-	    
-	} else if(type==REGULAR || type == ERROR){
-	    fprintf(stderr,"%s: Cannot create calendar directory %s\n",
-		    program_name,facspath);
-	    exit(1);
-	} 		    
-    }
-}
-
-char* check_options(struct options_struct *opt)
-{
-    return 0;
-}
-
-void store_component(icalcomponent *comp, struct options_struct *opt)
-{
-    icalerrorenum error; 
-
-
-    if(opt->storage == STORE_IN_FILE){
-	icalfileset *fs = icalfileset_new(opt->output_file);
-
-	if (fs == 0){
-	    fprintf(stderr,
-		    "%s: Failed to get incoming component directory: %s\n",
-		    program_name, icalerror_strerror(icalerrno));
-	    exit(1);
-	}
-
-
-	error = icalfileset_add_component(fs,comp);
-    
-	if (error != ICAL_NO_ERROR){
-	    fprintf(stderr,"%s: Failed to write incoming component: %s\n",
-		    program_name, icalerror_strerror(icalerrno));
-	    exit(1);
-	}
-	
-	error = icalfileset_commit(fs);
-    
-	if (error != ICAL_NO_ERROR){
-	    fprintf(stderr,"%s: Failed to commit incoming cluster: %s\n",
-		    program_name, icalerror_strerror(icalerrno));
-	    exit(1);
-	}
-	
-	icalfileset_free(fs);
-
-	return;
-    } else {
-	assert(0);
-    }
-}
-
-char* read_stream(char *s, size_t size, void *d)
-{
-  char *c = fgets(s,size, (FILE*)d);
-
-  return c;
-}
-
-icalcomponent* read_nonmime_component(struct options_struct *opt)
-{
-    FILE *stream;
-    icalcomponent *comp;
-    icalparser* parser = icalparser_new();
-    char* line;
-
-    if(opt->input_source == INPUT_FROM_FILE){
- 	stream = fopen(opt->input_file,"r"); 	
-
-	if (stream == 0){
-	    perror("Can't open input file");
-	    exit(1);
-	}
-
-    } else {
- 	stream = stdin;  	 	
-    }
-
-    assert(stream != 0);
-    icalparser_set_gen_data(parser,stream);
-   
-    do {	
-	line = icalparser_get_line(parser,read_stream);
-	
-	comp = icalparser_add_line(parser,line);
-	
-	if (comp != 0){
-	    return comp;
-	}
-	
-    } while ( line != 0);
-
-    if(opt->input_source == INPUT_FROM_FILE){
-	fclose(stream);
-    }
-
-
-    return comp;
- }
-
-icalcomponent* find_vcalendar(icalcomponent* comp)
-{
-    icalcomponent *c,*rtrn;
-
-    for(c = icalcomponent_get_first_component(comp,ICAL_ANY_COMPONENT);
-	c != 0;
-	c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT)){
-
-	if(icalcomponent_isa(c) == ICAL_VCALENDAR_COMPONENT){
-	    icalcomponent_remove_component(comp,c);
-	    return c;
-	}
-
-	if((rtrn=find_vcalendar(c)) != 0){
-	    return rtrn;
-	}
-    }
-
-    return 0;
-}
-
-icalcomponent* read_mime_component(struct options_struct *opt)
-{
-    icalcomponent *comp,*mimecomp;
-    FILE* stream;
-    
-    if(opt->input_source == INPUT_FROM_FILE){
- 	stream = fopen(opt->input_file,"r"); 	
-	
-	if (stream == 0){
-	    perror("Can't open input file");
-	    exit(1);
-	}
-	
-    } else {
- 	stream = stdin;  	 	
-    }
-    
-    assert(stream != 0);
-    
-    mimecomp = icalmime_parse(read_stream,(void*)stream);
-
-    /* now find the iCal component embedded within the mime component */
-    comp = find_vcalendar(mimecomp);
-
-
-    if(comp == 0){
-	return 0;
-    }
-
-    return comp;    
-}
-
-icalcomponent* read_component(struct options_struct *opt)
-{
-    if(opt->input_type == INPUT_IS_MIME){
-	return read_mime_component(opt);
-    } else if (opt->input_type == INPUT_IS_ICAL){
-	return read_nonmime_component(opt);
-    } else {
-	fprintf(stderr,"%s: Internal Error; unknown option for input_type\n",
-		program_name);
-	exit(1);
-    }
-}
-
-int main(int argc, char* argv[] )
-{
-    char* options_error_str;
-    char* component_error_str;
-    icalcomponent* comp, *reply;
-    struct options_struct opt;
-    icalproperty *return_status;
-
-    program_name = strrchr(argv[0],'/');
-
-    get_options(argc, argv, &opt);
-
-    if ( (options_error_str = check_options(&opt)) != 0 ){
-	usage(options_error_str);
-	exit(1);
-    }    
-
-    comp = read_component(&opt);
-
-    if ( (component_error_str = 
-	  check_component(comp,&return_status,&opt)) != 0){
-	reply = make_reply(comp,return_status,&opt);
-	return_failure(reply, component_error_str, &opt);
-	icalcomponent_free(reply);
-	exit(0);
-    }
-
-    store_component(comp,&opt);
-
-
-    /* Don't free the component comp, since it is now part of the
-       store, and will be freed there */
-
-    exit(0);
-}
-
diff --git a/libical/src/test/testclassify.c b/libical/src/test/testclassify.c
deleted file mode 100644
index 2c6c785dfa..0000000000
--- a/libical/src/test/testclassify.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: testclassify.c
-  CREATOR: eric 11 February 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000 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 Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#include <stdio.h> /* for printf */
-#include "ical.h"
-#include <errno.h>
-#include <string.h> /* For strerror */
-#include "icalset.h"
-#include "icalclassify.h"
-
-
-struct class_map {
-	ical_class class;
-	char *str;
-} class_map[] = {
-    {ICAL_NO_CLASS,"No class"},
-    {ICAL_PUBLISH_NEW_CLASS,"New Publish"},
-    {ICAL_PUBLISH_UPDATE_CLASS,"Update Publish"},
-    {ICAL_REQUEST_NEW_CLASS,"New request"},
-    {ICAL_REQUEST_UPDATE_CLASS,"Update"},
-    {ICAL_REQUEST_RESCHEDULE_CLASS,"Reschedule"},
-    {ICAL_REQUEST_DELEGATE_CLASS,"Delegate"},
-    {ICAL_REQUEST_NEW_ORGANIZER_CLASS,"New Organizer"},
-    {ICAL_REQUEST_FORWARD_CLASS,"Forward"},
-    {ICAL_REQUEST_STATUS_CLASS,"Status request"},
-    {ICAL_REPLY_ACCEPT_CLASS,"Accept reply"},
-    {ICAL_REPLY_DECLINE_CLASS,"Decline reply"},
-    {ICAL_REPLY_CRASHER_ACCEPT_CLASS,"Crasher's accept reply"},
-    {ICAL_REPLY_CRASHER_DECLINE_CLASS,"Crasher's decline reply"},
-    {ICAL_ADD_INSTANCE_CLASS,"Add instance"},
-    {ICAL_CANCEL_EVENT_CLASS,"Cancel event"},
-    {ICAL_CANCEL_INSTANCE_CLASS,"Cancel instance"},
-    {ICAL_CANCEL_ALL_CLASS,"Cancel all instances"},
-    {ICAL_REFRESH_CLASS,"Refresh"},
-    {ICAL_COUNTER_CLASS,"Counter"},
-    {ICAL_DECLINECOUNTER_CLASS,"Decline counter"},
-    {ICAL_MALFORMED_CLASS,"Malformed"}, 
-    {ICAL_OBSOLETE_CLASS,"Obsolete"},
-    {ICAL_MISSEQUENCED_CLASS,"Missequenced"},
-    {ICAL_UNKNOWN_CLASS,"Unknown"}
-};
-
-char* find_class_string(ical_class class)
-{
-    int i; 
-
-    for (i = 0;class_map[i].class != ICAL_UNKNOWN_CLASS;i++){
-	if (class_map[i].class == class){
-	    return class_map[i].str;
-	}
-    }
-
-    return "Unknown";
-}
-
-
-int main(int argc, char* argv[])
-{
-    icalcomponent *c;
-    int i=0;
-
-    icalset* f = icalset_new_file("../../test-data/incoming.ics");
-    icalset* cal = icalset_new_file("../../test-data/calendar.ics");
-
-    assert(f!= 0);
-    assert(cal!=0);
-	
-
-    /* Foreach incoming message */
-    for(c=icalset_get_first_component(f);c!=0;
-	c=icalset_get_next_component(f)){
-	
-	ical_class class;
-	icalcomponent *match;
-	icalcomponent *inner = icalcomponent_get_first_real_component(c);
-	icalcomponent *p;
-	const char *this_uid;
-	const char *i_x_note=0;
-	const char *c_x_note=0;
-
-	i++;
-
-	if(inner == 0){
-	    continue;
-	}
-
-	p = icalcomponent_get_first_property(inner,ICAL_UID_PROPERTY);
-	this_uid = icalproperty_get_uid(p);
-
-	assert(this_uid != 0);
-
-	/* Find a booked component that is matched to the incoming
-	   message, based on the incoming component's UID, SEQUENCE
-	   and RECURRENCE-ID*/
-
-	match = icalset_fetch(cal,this_uid);
-
-	class = icalclassify(c,match,"A@example.com");
-
-	for(p = icalcomponent_get_first_property(c,ICAL_X_PROPERTY);
-	    p!= 0;
-	    p = icalcomponent_get_next_property(c,ICAL_X_PROPERTY)){
-	    if(strcmp(icalproperty_get_x_name(p),"X-LIC-NOTE")==0){
-		i_x_note = icalproperty_get_x(p);
-	    }
-	}
-
-
-	if(i_x_note == 0){
-	    i_x_note = "None";
-	}
-
-	for(p = icalcomponent_get_first_property(match,ICAL_X_PROPERTY);
-	    p!= 0;
-	    p = icalcomponent_get_next_property(match,ICAL_X_PROPERTY)){
-	    if(strcmp(icalproperty_get_x_name(p),"X-LIC-NOTE")==0){
-		c_x_note = icalproperty_get_x(p);
-	    }
-	}
-
-	if(c_x_note == 0){
-	    c_x_note = "None";
-	}
-
-
-	printf("Test %d\nIncoming:      %s\nMatched:       %s\nClassification: %s\n\n",i,i_x_note,c_x_note,find_class_string(class));	
-    }
-
-    return 0;
-}
-
-
diff --git a/libical/src/test/testmime.c b/libical/src/test/testmime.c
deleted file mode 100644
index 5dfc3b7d31..0000000000
--- a/libical/src/test/testmime.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: 
-  CREATOR: eric 25 June 2000
-  
-  $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
- ======================================================================*/
-
-#include "ical.h"
-#include "sspm.h"
-#include "icalmime.h"
-#include <stdlib.h> /* For rand */
-#include <string.h> /* for strrchr, strdup*/
-#include <unistd.h>   /* for getopt */
-
-/*int sspm_parse_mime(struct sspm_part *parts, 
-	       size_t max_parts,
-	       struct sspm_action_map *actions,
-	       char* (*get_string)(char *s, size_t size, void* data),
-	       void *get_string_data,
-	       struct sspm_header *first_header
-    );
-*/
-
-
-
-char* major_type_string[] = {
-    "TEXT",
-    "IMAGE",
-    "AUDIO",
-    "VIDEO",
-    "APPLICATION",
-    "MULTIPART",
-    "MESSAGE",
-    "UNKNOWN",
-    "NO"
-};
-
-char* minor_type_string[] = {
-    "ANY",
-    "PLAIN",
-    "RFC822",
-    "DIGEST",
-    "CALENDAR",
-    "MIXED",
-    "RELATED",
-    "ALTERNATIVE",
-    "PARALLEL",
-    "UNKNOWN",
-    "NO"
-};
-
-
-char* read_stream(char *s, size_t size, void *d)
-{
-    char *c = fgets(s,size, (FILE*)d);
-
-    return c;
-
-}
-
-
-int main(int argc, char* argv[]) {
-
-    FILE *f;
-    int c;
-    extern char *optarg;
-    extern int optind, optopt;
-    int errflg=0;
-    char* program_name;
-
-    struct options{
-	    int normal;
-	    int stress;
-	    int base64;
-	    int qp;
-	    int sleep;
-	    int count;
-	    char* input_file;
-    } opt;
-
-    memset(&opt,0,sizeof(opt));
-    
-    program_name = (char*)strrchr((char*)argv[0],'/');
-    program_name++;
-
-    while ((c = getopt(argc, argv, "nsbqi:S:c:")) != -1) {
-	switch (c) {
-	    case 'i': { /* Input comes from named file */
-		opt.input_file = strdup(optarg);
-		break;
-	    }
-	    case 'n':{ /* Normal */
-
-		if(opt.stress+opt.base64+opt.qp != 0){
-		    fprintf(stderr,
-			    "%s: Use only one of  n,s,b and q\n",
-			    program_name);
-		}
-		opt.normal = 1;
-		break;
-	    }
-	    case 's':{ /* Stress-test*/
-		if(opt.base64+opt.normal+opt.qp != 0){
-		    fprintf(stderr,
-			    "%s: Use only one of  n,s,b and q\n",
-			    program_name);
-		}
-		opt.stress = 1;
-		break;
-	    }
-	    case 'b':{ /* test base64 decoding*/
-		if(opt.stress+opt.normal+opt.qp != 0){
-		    fprintf(stderr,
-			    "%s: Use only one of  n,s,b and q\n",
-			    program_name);
-		}
-		opt.base64 = 1;
-		break;
-	    }
-	    case 'q':{ /* test quoted-printable decoding*/
-		if(opt.stress+opt.base64+opt.normal != 0){
-		    fprintf(stderr,
-			    "%s: Use only one of  n,s,b and q\n",
-			    program_name);
-		}
-		opt.qp = 1;
-		break;
-	    }
-	    case 'S':{ /* sleep at end of run */
-		opt.sleep = atoi(optarg);
-		break;
-	    }
-
-	    case 'c':{ /* number of iterations of stress test */
-		opt.count = atoi(optarg);
-		break;
-	    }
-	    
-	    case ':': {/* Option given without an operand */
-		fprintf(stderr,
-			"%s: Option -%c requires an operand\n", 
-			program_name,optopt);
-		errflg++;
-		break;
-	    }
-	    case '?': {
-		errflg++;
-	    }
-	}
-    }
-    
-    if (errflg >0){
-	fprintf(stderr,"Usage: %s [-n|-s|-b|-q] [-i input_file]\n",
-		program_name);
-	exit(1);
-    }
-    
-    if(opt.stress+opt.base64+opt.normal+opt.qp == 0){
-	fprintf(stderr,
-		"%s: Must have one of n,s,b or q\n",
-		program_name);
-    }
-    
-    if(opt.input_file){
-	f = fopen(opt.input_file,"r");
-	if (f == 0){
-	    fprintf(stderr,"Could not open input file \"%s\"\n",
-		    opt.input_file);
-	    exit(1);
-	}
-    } else {
-	f = stdin;
-    }
-	
- 	
-
-    if(opt.normal == 1){
-	icalcomponent *c;
-
-	c = icalmime_parse(read_stream,f);
-	
-	printf("%s\n",icalcomponent_as_ical_string(c));
-
-	icalcomponent_free(c);
-
-    }  else if (opt.stress==1 ){
-	/* Read file in by lines, then randomize the lines into a
-           string buffer */
-
-	char *array[1024];
-	char temp[1024];
-       	char *buf;
-	int i,last;
-	int size;
-	int non_rand;
-	int rand_lines;
-	int r;
-	int j;
-	icalcomponent *c;
-	struct slg_data {
-		char* pos;
-		char* str;
-	} d;
-    
-	for(i=0; !feof(f); i++){
-	    fgets(temp,1024,f);
-	    array[i] = strdup(temp);
-	    size += strlen(temp);
-	}
-	last = i;
- 
-	buf = malloc(size*2);
-	assert(buf != 0);
-	
-
-	for(j=0; j<opt.count; j++){
-
-	    srand(j);
-	    memset(buf,0,size*2);
-	    /* First insert some non-randomized lines */
-	    non_rand = ((float)rand()/(float)RAND_MAX) * last;
-	    for(i=0;i<non_rand;i++){
-		strcat(buf,array[i]);
-	    }
-	    
-	    /* Then, insert some lines at random */
-	    
-	    rand_lines = last - non_rand;
-	    
-	    for(i=0;i<rand_lines;i++){
-		srand(i);
-		r = ((float)rand()/(float)RAND_MAX) * rand_lines;
-		strcat(buf,array[r+non_rand]);
-		
-	    }
-
-	    d.pos = 0;
-	    d.str = buf;
-
-	    c = icalmime_parse(string_line_generator,&d);
-
-	    printf("%s\n",icalcomponent_as_ical_string(c));
-
-	    icalcomponent_free(c);
-	    
-	}
-
-	free(buf);
-
-	for(i=0; i<last; i++){
-	    free(array[i]);
-	}
-
-    } else if(opt.qp == 1){	
-	char str[4096];
-	char conv[4096];
-	
-	memset(str,0,4096);
-	
-	while(!feof(f) && fgets(str,4096,f)!=0){
-	    size_t size;
-	    
-	    size = strlen(str);
-	    memset(conv,0,4096);
-	    decode_quoted_printable(conv,str,&size);
-	    
-	    conv[size] = '\0';
-	    printf("%s",conv);
-	    memset(str,0,4096);
-	    
-	}
-    } else if (opt.base64 == 1) {
-	char str[4096];
-	char conv[4096];
-	
-	memset(str,0,4096);
-	
-	while(!feof(f) && fgets(str,4096,f)!=0){
-	    size_t size;
-	    
-	    size = strlen(str);
-	    memset(conv,0,4096);
-	    decode_base64(conv,str,&size);
-	    
-	    conv[size] = '\0';
-	    printf("%s",conv);
-	    memset(str,0,4096);
-	    
-	}
-    }
-
-    if (opt.sleep != 0){
-	sleep(opt.sleep);
-    }
-
-    if(	opt.input_file != 0){
-	free(opt.input_file);
-    }
-
-    icalmemory_free_ring();
-
-    return 0;
-
-}
-
-
-
-
-
-	
-	
-       
diff --git a/libical/src/test/testvcal.c b/libical/src/test/testvcal.c
deleted file mode 100644
index f82adffcc8..0000000000
--- a/libical/src/test/testvcal.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C -*-
-  ======================================================================
-  FILE: vcal.c
-  CREATOR: eric 26 May 2000
-  
-  $Id$
-  $Locker$
-    
- (C) COPYRIGHT 2000 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 Code is eric. The Initial Developer of the Original
- Code is Eric Busboom
-
-
- ======================================================================*/
-
-#include "icalvcal.h"
-#include <stdio.h>
-
-/* Given a vCal data file as its first argument, this program will
-   print out an equivalent iCal component. 
-
-   For instance: 
-
-       ./testvcal ../../test-data/user-cal.vcf
-
-*/
-
-int main(int argc, char* argv[])
-{
-    VObject *vcal = 0;
-    icalcomponent *comp;
-    char* file;
-
-    if (argc != 2){
-        file = "../../test-data/user-cal.vcf";
-    } else {
-        file = argv[1];
-    }
-
-
-    vcal = Parse_MIME_FromFileName(file);
-    
-    assert(vcal != 0);
-
-    comp = icalvcal_convert(vcal);
-
-    printf("%s\n",icalcomponent_as_ical_string(comp));
-    
-    return 0;
-}           
-
-
-- 
cgit