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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
/*======================================================================
FILE: icaltestparser.c
CREATOR: eric 20 June 1999
SPDX-FileCopyrightText: 1999 The Software Studio <eric@civicknowledge.com>
SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
The original author is Eric Busboom
======================================================================*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "libical/ical.h"
//krazy:cond=style
char str[] = "BEGIN:VCALENDAR\
PRODID:\"-//RDU Software//NONSGML HandCal//EN\"\
VERSION:2.0\
BEGIN:VTIMEZONE\
TZID:US-Eastern\
BEGIN:STANDARD\
DTSTART:19990404T020000\
RDATE:19990u404xT020000\
TZOFFSETFROM:-0500\
TZOFFSETTO:-0400\
END:STANDARD\
BEGIN:DAYLIGHT\
DTSTART:19990404T020000\
RDATE:19990404T020000\
TZOFFSETFROM:-0500\
TZOFFSETTO:-0400\
TZNAME:EDT\
Dkjhgri:derhvnv;\
BEGIN:dfkjh\
END:dfdfkjh\
END:DAYLIGHT\
END:VTIMEZONE\
BEGIN:VEVENT\
GEO:Bongo\
DTSTAMP:19980309T231000Z\
UID:guid-1.host1.com\
ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com\
ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP\
:MAILTO:employee-A@host.com\
DESCRIPTION:Project XYZ Review Meeting\
CATEGORIES:MEETING\
CLASS:PUBLIC\
CREATED:19980309T130000Z\
SUMMARY:XYZ Project Review\
DTSTART;TZID=US-Eastern:19980312T083000\
DTEND;TZID=US-Eastern:19980312T093000\
LOCATION:1CP Conference Room 4350\
END:VEVENT\
END:VCALENDAR\
";
//krazy:endcond=style
extern int yydebug;
/* Have the parser fetch data from stdin */
char *read_stream(char *s, size_t size, void *d)
{
char *c = fgets(s, (int)size, (FILE *) d);
return c;
}
int main(int argc, char *argv[])
{
char *line;
FILE *stream;
icalcomponent *c;
icalparser *parser = icalparser_new();
if (argc != 2) {
fprintf(stderr, "Usage: parser [file.ics]\n");
return 0;
}
stream = fopen(argv[1], "r");
if (stream == (FILE *) NULL) {
fprintf(stderr, "Cannot open file \"%s\" for reading\n", argv[1]);
return 1;
}
icalparser_set_gen_data(parser, stream);
do {
line = icalparser_get_line(parser, read_stream);
c = icalparser_add_line(parser, line);
icalmemory_free_buffer(line);
if (c != 0) {
/*icalcomponent_convert_errors(c); */
printf("%s", icalcomponent_as_ical_string(c));
printf("\n---------------\n");
icalcomponent_free(c);
}
} while (line != 0);
icalparser_free(parser);
fclose(stream);
return 0;
}
|