Introduction
Introduction Statistics Contact Development Disclaimer Help
tical.h - ics2txt - convert icalendar .ics file to plain text
git clone git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws…
Log
Files
Refs
Tags
README
---
tical.h (1806B)
---
1 #ifndef ICAL_H
2 #define ICAL_H
3
4 #include <stdio.h>
5 #include <time.h>
6
7 #include "map.h"
8
9 #define ICAL_NESTED_MAX 4
10
11 enum ical_err {
12 ICAL_ERR_OK,
13 ICAL_ERR_SYSTEM,
14 ICAL_ERR_END_MISMATCH,
15 ICAL_ERR_MISSING_BEGIN,
16 ICAL_ERR_MISSING_COLUMN,
17 ICAL_ERR_MISSING_SEMICOLUMN,
18 ICAL_ERR_MISSING_EQUAL,
19 ICAL_ERR_MIN_NESTED,
20 ICAL_ERR_MAX_NESTED,
21
22 ICAL_ERR_LENGTH,
23 };
24
25 /* global propoerties for an iCalendar document as well as parsing state…
26
27 struct ical_vcalendar {
28 time_t tzid;
29 struct ical_vnode *root;
30 struct ical_vnode *nested[ICAL_NESTED_MAX + 1];
31 struct ical_vnode *current;
32 };
33
34 /* element part of an iCalendar document with eventual nested childs */
35
36 struct ical_vnode {
37 char name[32];
38 struct map values; /*(struct ical_value *)*/
39 struct map childs; /*(struct ical_vnode *)*/
40 struct ical_vnode *next;
41 };
42
43 /* one line whith the whole content unfolded */
44
45 struct ical_value {
46 char *name, *value;
47 struct map param;
48 struct ical_value *next;
49 char buf[];
50 };
51
52 /** src/ical.c **/
53 int ical_getline(char **line, char **ln, size_t *sz, FILE *fp);
54 char * ical_strerror(int i);
55 struct ical_value * ical_new_value(char const *line);
56 void ical_free_value(struct ical_value *value);
57 int ical_parse_value(struct ical_value *value);
58 struct ical_vnode * ical_new_vnode(char const *name);
59 void ical_free_vnode(struct ical_vnode *node);
60 int ical_push_nested(struct ical_vcalendar *vcal, struct ical_vnode *new…
61 struct ical_vnode * ical_pop_nested(struct ical_vcalendar *vcal);
62 int ical_begin_vnode(struct ical_vcalendar *vcal, char const *name);
63 int ical_end_vnode(struct ical_vcalendar *vcal, char const *name);
64 int ical_push_value(struct ical_vcalendar *vcal, struct ical_value *new);
65 void ical_free_vcalendar(struct ical_vcalendar *vcal);
66 int ical_read_vcalendar(struct ical_vcalendar *vcal, FILE *fp);
67
68 #endif
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.