TODO:
-Create installed Python tests.
-Try to move the declarations of methods with libical type arguments into a new file libical-glib-private.h.
	--Fix the private methods in each structure.
	--Make it prettier.
	--Fix the Makefile.am to delete the libical-glib-private.h

Notes:
-Ignore pvl and sspm since they are too low level.
-Ignore all functions like 
	icalproperty* icalproperty_vanew_acknowledged(struct icaltimetype v, ...);
	icalcomponent* icalcomponent_vanew(icalcomponent_kind kind, ...);
	icalproperty* icalproperty_vanew_XXX(const char* v, ...);
	void icalproperty_add_parameters(struct icalproperty_impl *prop,va_list args);
-Ignore anything relevant to struct icalattachtype since they are only declared by never defined.
-Ignore 
	/* Internal operations. They are private, and you should not be using them. */
	icalcomponent* icalcomponent_get_parent(icalcomponent* component);
	void icalcomponent_set_parent(icalcomponent* component, 
				      icalcomponent* parent);
	/** Calls the given function for each TZID parameter found in the
	    component, and any subcomponents. */
	void icalcomponent_foreach_tzid(icalcomponent* comp,
					void (*callback)(icalparameter *param, void *data),
					void *callback_data);
					
	void icalcomponent_foreach_recurrence(icalcomponent* comp,
					      struct icaltimetype start,
					      struct icaltimetype end,
				void (*callback)(icalcomponent *comp, 
	                                         struct icaltime_span *span, 
	                                         void *data),
				      void *callback_data);
				      
-Ignore the macros like:	
	icalenum_XXX_to_string(x)	
	#define icalenum_string_to_XXX(x)
	Use original API instead.

	
-Ignore some macros in icalerror. Use original instead.

-Ignore because of no definition
	icalproperty* icallangbind_get_property(icalcomponent *c, int n, const char* prop);
	const char* icallangbind_get_property_val(icalproperty* p);
	const char* icallangbind_get_parameter(icalproperty *p, const char* parameter);
	icalcomponent* icallangbind_get_component(icalcomponent *c, const char* comp);
	
	char* icalmime_as_mime_string(char* component);
	
	int icalparameter_is_valid(icalparameter* parameter);
	
	icalvalue*  icalparser_parse_value(icalvalue_kind kind, 
				   	const char* str, icalcomponent** errors);
				   	int
	icalrestriction_is_parameter_allowed(icalproperty_kind property,
	                                       icalparameter_kind parameter);
	                                       
	                                       /** create a time from an ISO format string */
	struct icaltimetype icaltime_from_string_with_zone(const char* str,
							const icaltimezone *zone);
							
							struct icaltimetype icaltime_from_week_number(const int week_number,
							const int year);
							
	/** @brief Returns true if time is a floating time */
	int icaltime_is_floating(const struct icaltimetype t);

	/** Return -1, 0, or 1 to indicate that a<b, a==b or a>b */
	int icaltime_compare_with_zone(const struct icaltimetype a,
	        			const struct icaltimetype b);
        
        /** Return the number of days in this year */
	int icaltime_days_in_year (const int year);
	void icaltimezonetype_free(struct icaltimezonetype tzt);

-ignore because of not a part of public API
	const char *icaltzutil_get_zone_directory (void);
	icalcomponent *icaltzutil_fetch_timezone (const char *location);
