Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <libical/ical.h>
- //UID:20060416T204922Z-4272-727-1-250@gollum\r\n\
- const char *event = "BEGIN:VCALENDAR\r\n\
- VERSION:2.0\r\n\
- PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.27//EN\r\n\
- BEGIN:VEVENT\r\n\
- DTSTART:20060406T193000Z\r\n\
- DTEND:20060406T200000Z\r\n\
- ATTENDEE;CN=Patrick Ohly;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:Patrick.Ohly@gmx.de\r\n\
- ATTENDEE;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:john@bar.com\r\n\
- CATEGORIES:BUSINESS\r\n\
- CATEGORIES:MEETING\r\n\
- CLASS:PUBLIC\r\n\
- CREATED:20110420T085029Z\r\n\
- DTSTAMP:20110420T085029Z\r\n\
- LAST-MODIFIED:20110420T085029Z\r\n\
- ORGANIZER;CN=Patrick Ohly;SCHEDULE-AGENT=NONE;SCHEDULE-STATUS=5.3:mailto:Patrick.Ohly@gmx.de\r\n\
- SEQUENCE:2\r\n\
- SUMMARY:meeting invitation\r\n\
- TRANSP:OPAQUE\r\n\
- END:VEVENT\r\n\
- END:VCALENDAR";
- void loop_component (icalcomponent *com)
- {
- icalcomponent *event = icalcomponent_get_first_component(com, ICAL_VEVENT_COMPONENT);
- if (event) {
- icalproperty *p = 0;
- while (p = icalcomponent_get_first_property (event, ICAL_ORGANIZER_PROPERTY), p != NULL) {
- printf ("Property :: %s\n", icalproperty_as_ical_string(p));
- icalcomponent_remove_property(event, p);
- // icalproperty_free(p); p = 0;
- }
- }
- else {
- printf ("ERROR : icalcomponent_get_first_component(com, ICAL_VEVENT_COMPONENT\n");
- printf ("Parsed Component : \n%s\n", icalcomponent_as_ical_string(com));
- }
- }
- int main ()
- {
- icalcomponent *com = icalparser_parse_string(event);
- printf("-----------\n%s\n------------\n", event);
- if (com) {
- printf("Parsing success.\n");
- loop_component (com);
- }
- else printf ("Parsing FAILED!!!!\n");
- }
- ####
- gcc test_ical_bug_16452.c `pkg-config --libs libical` -o test
- ####
- ./test
- BEGIN:VCALENDAR
- VERSION:2.0
- PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.27//EN
- BEGIN:VEVENT
- DTSTART:20060406T193000Z
- DTEND:20060406T200000Z
- ATTENDEE;CN=Patrick Ohly;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:Patrick.Ohly@gmx.de
- ATTENDEE;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:john@bar.com
- CATEGORIES:BUSINESS
- CATEGORIES:MEETING
- CLASS:PUBLIC
- CREATED:20110420T085029Z
- DTSTAMP:20110420T085029Z
- LAST-MODIFIED:20110420T085029Z
- ORGANIZER;CN=Patrick Ohly;SCHEDULE-AGENT=NONE;SCHEDULE-STATUS=5.3:mailto:Patrick.Ohly@gmx.de
- SEQUENCE:2
- SUMMARY:meeting invitation
- TRANSP:OPAQUE
- END:VEVENT
- END:VCALENDAR
- ------------
- Parsing success.
- Property :: ORGANIZER;CN=Patrick Ohly:mailto:Patrick.Ohly@gmx.de
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement