// This program is open source software. Use, duplication, or disclosure
// is subject to the terms of the GNU General Public License version 3.
+#define PRODID "-//Citadel//NONSGML Citadel Calendar//EN"
+
// "server_generated_invitations" tells the Citadel server that the
// client wants invitations to be generated and sent out by the
// server. Set to 1 to enable this functionality.
#define CIT_ICAL CC->CIT_ICAL
#define MAX_RECUR 1000
-void calendar_report(void);
+
+// This is a structure to pass data back and forth between callbacks.
+struct ical_respond_data {
+ char desired_partnum[SIZ];
+ icalcomponent *cal;
+};
+
+
+// Everything below was generated by
+// cproto -f2 *.c 2>/dev/null |sed 's/^\/\*/\n\/\//g' | sed 's/\ \*\/$//g'
+
+// serv_calendar.c
+icalcomponent *icalcomponent_new_citadel_vcalendar(void);
+icalcomponent *ical_encapsulate_subcomponent(icalcomponent *);
+void ical_write_to_cal(struct ctdluser *, icalcomponent *);
+void ical_send_a_reply(icalcomponent *, char *);
+void ical_locate_part(char *, char *, char *, char *, void *, char *, char *, size_t, char *, char *, void *);
+void ical_respond(long, char *, char *);
+void ical_learn_uid_of_reply(char *, icalcomponent *);
+void ical_hunt_for_event_to_update(long, void *);
+void ical_locate_original_event(char *, char *, char *, char *, void *, char *, char *, size_t, char *, char *, void *);
+void ical_merge_attendee_reply(icalcomponent *, icalcomponent *);
+int ical_update_my_calendar_with_reply(icalcomponent *);
+void ical_handle_rsvp(long, char *, char *);
+icalproperty *ical_ctdl_get_subprop(icalcomponent *, icalproperty_kind);
+int ical_ctdl_is_overlap(struct icaltimetype, struct icaltimetype, struct icaltimetype, struct icaltimetype);
+int ical_conflicts_phase6(struct icaltimetype, struct icaltimetype, struct icaltimetype, struct icaltimetype, long, char *, char *, char *);
+void ical_conflicts_phase5(struct icaltimetype, struct icaltimetype, icalcomponent *, long, char *);
+void ical_conflicts_phase4(icalcomponent *, icalcomponent *, long);
+void ical_hunt_for_conflicts_backend(long, void *);
+void ical_hunt_for_conflicts(icalcomponent *);
+void ical_conflicts(long, char *);
+void ical_add_to_freebusy(icalcomponent *, icalcomponent *);
+void ical_freebusy_backend(long, void *);
+void ical_freebusy(char *);
+void ical_getics_backend(long, void *);
+void ical_getics(void);
+void ical_putics_grabtzids(icalparameter *, void *);
+void ical_putics(void);
+void ical_CtdlCreateRoom(void);
+void ical_send_out_invitations(icalcomponent *, icalcomponent *);
+void ical_saving_vevent(icalcomponent *, icalcomponent *);
+void ical_obj_beforesave_backend(char *, char *, char *, char *, void *, char *, char *, size_t, char *, char *, void *);
+int ical_obj_beforesave(struct CtdlMessage *, struct recptypes *);
+void ical_obj_aftersave_backend(char *, char *, char *, char *, void *, char *, char *, size_t, char *, char *, void *);
+int ical_obj_aftersave(struct CtdlMessage *, struct recptypes *);
+void ical_session_startup(void);
+void ical_session_shutdown(void);
+void ical_fixed_output_backend(icalcomponent *, int);
+void ical_fixed_output(char *, int);
+void cmd_ical(char *);
+char *ctdl_module_init_calendar(void);