aboutsummaryrefslogtreecommitdiff
path: root/vcal.h
blob: e5f4cf7fadb81e752709a99a8bfce0c4043c7839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef VCAL_H
#define VCAL_H

#include <stdlib.h>

#include "strbuf.h"


/*
 * It's intentionall that there is no vevent_init. That since
 * the length of the strings isn't known.
 */
typedef struct {
	string dtstart;
	string dtend;
	string summary;
	string description;
} vevent;

/*
 * Deep copy from src -> dest
 * Requires dest to be initialized beforehand
 * TODO possibly remove this.
 */
int copy_vevent(vevent* dest, vevent* src);

/*
 * Copies src -> dest, initializing all the strings along the way.
 * Requires dest to be initialized.
 */
int vevent_init_copy(vevent* dest, vevent* src);
int free_vevent(vevent* ev);

typedef struct {
	size_t n_events;
	size_t alloc;
	vevent* events;
} vcalendar;

int init_vcalendar(vcalendar* cal);
int free_vcalendar(vcalendar* cal);

int push_event(vcalendar* cal, vevent* ev);

#endif /* VCAL_H */