Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
581
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. #include <libical/ical.h>
  2.  
  3. //UID:20060416T204922Z-4272-727-1-250@gollum\r\n\
  4.  
  5. const char *event = "BEGIN:VCALENDAR\r\n\
  6. VERSION:2.0\r\n\
  7. PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.27//EN\r\n\
  8. BEGIN:VEVENT\r\n\
  9. DTSTART:20060406T193000Z\r\n\
  10. DTEND:20060406T200000Z\r\n\
  11. ATTENDEE;CN=Patrick Ohly;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:Patrick.Ohly@gmx.de\r\n\
  12. ATTENDEE;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:john@bar.com\r\n\
  13. CATEGORIES:BUSINESS\r\n\
  14. CATEGORIES:MEETING\r\n\
  15. CLASS:PUBLIC\r\n\
  16. CREATED:20110420T085029Z\r\n\
  17. DTSTAMP:20110420T085029Z\r\n\
  18. LAST-MODIFIED:20110420T085029Z\r\n\
  19. ORGANIZER;CN=Patrick Ohly;SCHEDULE-AGENT=NONE;SCHEDULE-STATUS=5.3:mailto:Patrick.Ohly@gmx.de\r\n\
  20. SEQUENCE:2\r\n\
  21. SUMMARY:meeting invitation\r\n\
  22. TRANSP:OPAQUE\r\n\
  23. END:VEVENT\r\n\
  24. END:VCALENDAR";
  25.  
  26. void loop_component (icalcomponent *com)
  27. {
  28. icalcomponent *event = icalcomponent_get_first_component(com, ICAL_VEVENT_COMPONENT);
  29.  
  30. if (event) {
  31. icalproperty *p = 0;
  32. while (p = icalcomponent_get_first_property (event, ICAL_ORGANIZER_PROPERTY), p != NULL) {
  33. printf ("Property :: %s\n", icalproperty_as_ical_string(p));
  34. icalcomponent_remove_property(event, p);
  35. // icalproperty_free(p); p = 0;
  36. }
  37. }
  38. else {
  39. printf ("ERROR : icalcomponent_get_first_component(com, ICAL_VEVENT_COMPONENT\n");
  40. printf ("Parsed Component : \n%s\n", icalcomponent_as_ical_string(com));
  41. }
  42. }
  43.  
  44. int main ()
  45. {
  46. icalcomponent *com = icalparser_parse_string(event);
  47.  
  48. printf("-----------\n%s\n------------\n", event);
  49. if (com) {
  50. printf("Parsing success.\n");
  51. loop_component (com);
  52. }
  53. else printf ("Parsing FAILED!!!!\n");
  54.  
  55.  
  56. }
  57.  
  58.  
  59. ####
  60. gcc test_ical_bug_16452.c `pkg-config --libs libical` -o test
  61.  
  62.  
  63. ####
  64. ./test
  65.  
  66.  
  67. BEGIN:VCALENDAR
  68. VERSION:2.0
  69. PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.27//EN
  70. BEGIN:VEVENT
  71. DTSTART:20060406T193000Z
  72. DTEND:20060406T200000Z
  73. ATTENDEE;CN=Patrick Ohly;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:Patrick.Ohly@gmx.de
  74. ATTENDEE;CUTYPE=INDIVIDUAL;LANGUAGE=en;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:john@bar.com
  75. CATEGORIES:BUSINESS
  76. CATEGORIES:MEETING
  77. CLASS:PUBLIC
  78. CREATED:20110420T085029Z
  79. DTSTAMP:20110420T085029Z
  80. LAST-MODIFIED:20110420T085029Z
  81. ORGANIZER;CN=Patrick Ohly;SCHEDULE-AGENT=NONE;SCHEDULE-STATUS=5.3:mailto:Patrick.Ohly@gmx.de
  82. SEQUENCE:2
  83. SUMMARY:meeting invitation
  84. TRANSP:OPAQUE
  85. END:VEVENT
  86. END:VCALENDAR
  87. ------------
  88. Parsing success.
  89. Property :: ORGANIZER;CN=Patrick Ohly:mailto:Patrick.Ohly@gmx.de
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement