aboutsummaryrefslogtreecommitdiff
path: root/src/calendar.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/calendar.h')
-rw-r--r--src/calendar.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/calendar.h b/src/calendar.h
new file mode 100644
index 00000000..20b78a9f
--- /dev/null
+++ b/src/calendar.h
@@ -0,0 +1,41 @@
+#ifndef CALENDAR_H
+#define CALENDAR_H
+
+#include "vcal.h"
+
+/*
+ * Reads all ics flies in path into the given vcomponent. The
+ * component is assumed to be a abstract ROOT element, whose first
+ * component will most likely become a VCALENDAR.
+ *
+ * path should either be a single .ics file (vcalendar), or a
+ * directory directly containing .ics files (vdir).
+ */
+int read_vcalendar(vcomponent* cal, char* path);
+
+/*
+ * Gets extension from filename. Writes output to ext.
+ * Assumes that the extension is the text between the last dot and
+ * the end of the string, and that no slashes can occur between the
+ * dot and the end.
+ *
+ * Returns the length of the extension, 0 if no extension.
+ */
+int get_extension(const char* filename, char* ext, ssize_t max_len);
+
+/* Returns 1 if path has extension ext, 0 otherwise */
+int check_ext (const char* path, const char* ext);
+
+/* Handle a lone ics file */
+int handle_file(vcomponent* cal, char* path);
+
+/* Handle a directory of ics files */
+int handle_dir(vcomponent* cal, char* path);
+
+/*
+ * Helper for opening a single ICS file. Handles file internally, and
+ * writes output to cal.
+ */
+int open_ics (char* resolved_path, vcomponent* cal);
+
+#endif /* CALENDAR_H */