Diffstat (limited to 'libical/src/libicalss/icalmessage.c') (more/less context) (show whitespace changes)
-rw-r--r-- | libical/src/libicalss/icalmessage.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libical/src/libicalss/icalmessage.c b/libical/src/libicalss/icalmessage.c index d5c57c1..731a2c7 100644 --- a/libical/src/libicalss/icalmessage.c +++ b/libical/src/libicalss/icalmessage.c @@ -11,65 +11,65 @@ This program is free software; you can redistribute it and/or modify it under the terms of either: The LGPL as published by the Free Software Foundation, version 2.1, available at: http://www.fsf.org/copyleft/lesser.html Or: The Mozilla Public License Version 1.0. You may obtain a copy of the License at http://www.mozilla.org/MPL/ ======================================================================*/ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "icalmessage.h" #include "icalenums.h" #include <ctype.h> /* for tolower()*/ #include <string.h> /* for strstr */ #include <stdlib.h> /* for free(), malloc() */ icalcomponent* icalmessage_get_inner(icalcomponent* comp) { if (icalcomponent_isa(comp) == ICAL_VCALENDAR_COMPONENT){ return icalcomponent_get_first_real_component(comp); } else { return comp; } } -char* lowercase(const char* str) +static char* lowercase(const char* str) { char* p = 0; char* n = icalmemory_strdup(str); if(str ==0){ return 0; } for(p = n; *p!=0; p++){ *p = tolower(*p); } return n; } icalproperty* icalmessage_find_attendee(icalcomponent* comp, const char* user) { icalcomponent *inner = icalmessage_get_inner(comp); icalproperty *p,*attendee = 0; char* luser = lowercase(user); for(p = icalcomponent_get_first_property(inner, ICAL_ATTENDEE_PROPERTY); p != 0; p = icalcomponent_get_next_property(inner, ICAL_ATTENDEE_PROPERTY) ){ char* lattendee; lattendee = lowercase(icalproperty_get_attendee(p)); if (strstr(lattendee,user) != 0){ attendee = p; @@ -129,66 +129,71 @@ icalcomponent *icalmessage_new_reply_base(icalcomponent* c, icalcomponent *inner = icalmessage_get_inner(reply); icalerror_check_arg_rz(c,"c"); icalmessage_copy_properties(reply,c,ICAL_UID_PROPERTY); icalmessage_copy_properties(reply,c,ICAL_ORGANIZER_PROPERTY); icalmessage_copy_properties(reply,c,ICAL_RECURRENCEID_PROPERTY); icalmessage_copy_properties(reply,c,ICAL_SUMMARY_PROPERTY); icalmessage_copy_properties(reply,c,ICAL_SEQUENCE_PROPERTY); icalcomponent_set_dtstamp(reply,icaltime_from_timet(time(0),0)); if(msg != 0){ icalcomponent_add_property(inner,icalproperty_new_comment(msg)); } /* Copy this user's attendee property */ attendee = icalmessage_find_attendee(c,user); if (attendee == 0){ icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR); icalcomponent_free(reply); return 0; } icalcomponent_add_property(inner,icalproperty_new_clone(attendee)); /* Add PRODID and VERSION */ icalcomponent_add_property(reply,icalproperty_new_version("2.0")); +#ifndef WIN32 sprintf(tmp, "-//SoftwareStudio//NONSGML %s %s //EN",PACKAGE,VERSION); +#else + sprintf(tmp, + "-//SoftwareStudio//NONSGML %s %s //EN",ICAL_PACKAGE,ICAL_VERSION); +#endif icalcomponent_add_property(reply,icalproperty_new_prodid(tmp)); return reply; } icalcomponent* icalmessage_new_accept_reply(icalcomponent* c, const char* user, const char* msg) { icalcomponent *reply; icalproperty *attendee; icalcomponent *inner; icalerror_check_arg_rz(c,"c"); reply = icalmessage_new_reply_base(c,user,msg); if(reply == 0){ return 0; } inner = icalmessage_get_inner(reply); attendee = icalcomponent_get_first_property(inner, ICAL_ATTENDEE_PROPERTY); icalproperty_set_parameter(attendee, icalparameter_new_partstat(ICAL_PARTSTAT_ACCEPTED)); return reply; @@ -201,69 +206,69 @@ icalcomponent* icalmessage_new_decline_reply(icalcomponent* c, icalcomponent *reply; icalproperty *attendee; icalcomponent *inner; icalerror_check_arg_rz(c,"c"); reply = icalmessage_new_reply_base(c,user,msg); inner = icalmessage_get_inner(reply); if(reply == 0){ return 0; } attendee = icalcomponent_get_first_property(inner, ICAL_ATTENDEE_PROPERTY); icalproperty_set_parameter(attendee, icalparameter_new_partstat(ICAL_PARTSTAT_DECLINED)); return reply; } /* New is modified version of old */ icalcomponent* icalmessage_new_counterpropose_reply(icalcomponent* oldc, icalcomponent* newc, const char* user, const char* msg) { icalcomponent *reply; icalerror_check_arg_rz(oldc,"oldc"); icalerror_check_arg_rz(newc,"newc"); - reply = icalcomponent_new_clone(newc); + reply = icalmessage_new_reply_base(newc,user,msg); icalcomponent_set_method(reply,ICAL_METHOD_COUNTER); - return newc; + return reply; } icalcomponent* icalmessage_new_delegate_reply(icalcomponent* c, const char* user, const char* delegatee, const char* msg) { icalcomponent *reply; icalproperty *attendee; icalcomponent *inner; icalerror_check_arg_rz(c,"c"); reply = icalmessage_new_reply_base(c,user,msg); inner = icalmessage_get_inner(reply); if(reply == 0){ return 0; } attendee = icalcomponent_get_first_property(inner, ICAL_ATTENDEE_PROPERTY); icalproperty_set_parameter(attendee, icalparameter_new_partstat(ICAL_PARTSTAT_DELEGATED)); icalproperty_set_parameter(attendee, icalparameter_new_delegatedto(delegatee)); return reply; |