2005-06-08 Helge Hess * merged in changes of SOPE 4.5.46, this extends the API to include support for recurrence rules and more importantly, vCard processing (v4.4.35) * NGVCardSaxHandler.m: ensure that types are always uppercase, improved check for DUPs * NGiCal.xcode: reorganized ordering of headers/classes * NGiCal.xcode: added vCard related stuff * NGVCard.m: added support for profile, source, name * first version of working vCard SAX handler * more work on vCard parsing * work on vCard objects (incomplete) * iCalDateHolder.m, iCalDataSource.m: fixed gcc 4.0 warnings * iCalRenderer.h: added missing paranthesis for iVar declarations * iCalTrigger.m, iCalEntityObject.m, iCalToDo.m, iCalRecurrenceCalculator.m, iCalDateHolder.m, iCalDataSource.m, iCalPerson.m, iCalCalendar.m: numerous dealloc bugs/leaks fixed * iCalRecurrenceCalculator.m: bugfix for monthly and yearly recurrences * iCalRecurrenceCalculator.m: optimized exception date handling in complex calculation method quite a bit. Fixed bugs in all calculation methods by introducing checks on the desired range. * iCalRepeatableEntityObject.m: shifted code to iCalRecurrenceCalculator * iCalRecurrenceCalculator.[hm]: new class method to calculate complex recurrences. In SOGo this information is stored in quick fields to reduce the complexity of lookups, hence we need to offer a proper API to calculate date ranges from this information. Fixed all calculations to explicitly set timeZone for all newly created startDates - it seems the timeZone information is not properly retained by the hour:minute:second: method from NGExtensions which lead to improper DST related shifts. * iCalDateHolder.h: exposed the API * NSCalendarDate+ICal.[hm]: new convenience constructor for calendar dates from iCal representations (uses iCalDateHolder internally) * iCalRecurrenceRule.m: changed setUntil: to utilize new public NSCalendarDate+ICal category * NGiCal.h: added NSCalendarDate+ICal.h to the public headers * GNUmakefile: NSCalendarDate+ICal.h is public now * NGiCal.xmap: fixed a missing semicolon (did not load on MacOSX) * GNUmakefile.preamble: fixed linking locations for dependencies * iCalEntityObject.[hm]: added convenience API * iCalRepeatableEntityObject.[hm]: added convenience API * iCalRecurrenceRule.m: bugfixes in -byDayList and -iCalRepresentationForWeekDay: * iCalRecurrenceCalculator.m: implemented 'BYDAY' calculations for weekly frequency. Note that 'COUNT' is still broken for this case. * iCalRenderer.m: updated rendering, now can render recurrence rules and accompanied stuff properly. * iCalRecurrenceRule.[hm]: exposed some more of the API * iCalRecurrenceCalculator.m: some bugfixes. Split the code and gave iCalWeeklyRecurrenceCalculator its own calculation - there are a number of foreseeable differences to daily calculation that make this necessary in the near future anyways. * iCalRepeatableEntityObject.[hm]: added ability to properly calculate the recurrence ranges within a specific calendar date range, taking all possible exceptions into account. * iCalEvent.[hm]: convenience wrapper for the new method found in iCalRepeatableEntityObject. * GNUmakefile.preamble: added missing dependency on libNGExtensions (which also adds the dependency on libDOM) * iCalRecurrenceCalculator.h: fixed missing forward declaration in header * iCalRecurrenceCalculator.[hm]: implemented all required (and simple) calculations. Added some convenience API to query some of the more obvious ranges suitable as limits for fetching/comparison. * iCalRepeatableEntityObject.[hm]: new method for calculating the last possible recurrence start date. This can be used for fetches as well. * iCalEvent.[hm]: more convenient wrapper for the new method found in iCalRepeatableEntityObject. * NSCalendarDate+ICal.[hm]: convenience methods for calculating "distances" between dates. * tests/*: updated * README: updated * iCalRepeatableEntityObject.[hm]: new base class for all other repeatable entity objects. Offers a convenience API for generating recurrence ranges and tests, taking all exceptions into account. * iCalRecurrenceRule.[hm]: an iCal recurrence rule, modeled as closely as possible to RFC2445. Please note that this is work in progress and far from being complete, yet. * iCalRecurrenceCalculator.[hm]: a controller implementing RFC2445 to properly generate recurrence ranges and accompanied functionality. * iCalEvent.[hm], iCalToDo.[hm]: now subclasses from iCalRepeatableEntityObject, thus removed code dealing with recurrences * NGiCal.h: added new headers * NGiCal.xmap: changed recurrenceRule mappings due to model change * tests/*: contains unit tests for stuff dealing with recurrences. See accompanied README for details * iCalPerson.[hm]: formalized participationStatus according to RFC2445. Provided convenience API to set status without concrete knowledge of string values involved. * iCalEvent.[hm]: Added transparency 'TRANSP'. Also multiple convenience methods provided. * NGiCal.xmap: added proper mapping for 'transp'. * NGiCal.xcode: minor changes and updated * iCalPerson.[hm]: added -cnWithoutQuotes and -rfc822Email convenience methods to simplify client code dealing with these properties * NGiCal.xcode: provide SOPE_{MAJOR,MINOR}_VERSION to the build * iCalRenderer.m: use SOPE version defines for iCalendar product id * use Version file for install directory location of sax mapping 2004-10-31 Marcus Mueller * iCalAlarm.[hm], iCalEvent.[hm], iCalToDo.[hm], NGiCal.xmap: added recurrenceRule (v4.3.34) 2004-10-20 Marcus Mueller * NGiCal.xcode: added iCalRenderer.[hm], bumped framework version 2004-10-20 Helge Hess * iCalRenderer.m: fixed some issue with Cocoa Foundation (v4.3.33) * v4.3.32 * iCalEvent.m: added -vEvent method to produce an iCalendar representation of an event * added iCalRenderer class based on the SOGo render by ZNeK 2004-10-14 Marcus Mueller * NGiCal.xmap: added "categories" mapping (v4.3.31) 2004-10-05 Marcus Mueller * iCalEntityObject.[hm]: added categories property (v4.3.30) 2004-09-22 Marcus Mueller * NGiCal.xcode: fixed several build parameters 2004-09-01 Marcus Mueller * v4.3.29 * iCalEventChanges.[hm]: new class for tracking changes between two given events * iCalEvent.[hm]: new API to generate iCalEventChanges objects. * common.h: inline function and macro for "safe" comparison of object values 2004-09-01 Helge Hess * GNUmakefile.postamble: copy sax-model to FHS_INSTALL_ROOT + /share/sope-4.3/saxmappings/ when compiling for FHS (v4.3.28) 2004-08-29 Helge Hess * added hack to install the project in FHS locations - the library, its headers, the tools and the resources will be installed in FHS_INSTALL_ROOT if specified (eg make FHS_INSTALL_ROOT=/usr/local) (v4.3.27) 2004-08-26 Marcus Mueller * NGiCal.xcode: new Xcode project 2004-08-20 Helge Hess * fixed for SOPE 3.3 directory layout (v4.3.26) * moved to sope-ical * moved to SOPE 4.3 (v4.3.25) 2004-08-14 Helge Hess * iCalEntityObject.m: changed "sequence" attribute from NSString to NSNumber (this might break some code, though some care was taken to accept NSString parameters) (v4.2.24) 2004-07-14 Helge Hess * iCalEvent.h: moved 'status' field to iCalEntityObject, because it is also available in todo objects (v4.2.23) 2004-06-30 Marcus Mueller * iCalEntityObject.m: added -removeAllAttendees and -removeAllAlarms. These are necessary in case you want to remake the contents of these collections, but keep all other attributes otherwise. (v4.2.22) 2004-06-09 Helge Hess * v4.2.21 * GNUmakefile.preamble: added prebinding * GNUmakefile: create GNUmakefile.preamble, GNUmakefile.postamble 2004-05-05 Marcus Mueller * GNUmakefile: added support for building with GNUSTEP_BUILD_DIR environment variable set for recent gnustep-make package. (v4.2.20) 2004-01-23 Helge Hess * iCalDataSource.m: added some sanity checks, improved to work better with Mozilla generated iCal files (v4.2.19) 2003-12-22 Helge Hess * iCalDateHolder.m: small fix not to print a warning for "YYYYMMDD" style dates (which are supported) (v4.2.18) 2003-12-21 Helge Hess * v4.2.17 * iCalEvent.m: added parsing of duration values and calculation of end-dates based on that (eg required for Panther iCal.app) * iCalEvent.m: added support for 'status' and 'duration' fields Thu Nov 20 16:31:15 2003 Martin Hoerning * iCalDateHolder.m: added timeless date format: YYYYMMDD (solves ogo bug 424) (v4.2.16) Wed Oct 29 22:04:32 2003 Martin Hoerning * iCalDateHolder.m, iCalObject.[m|h]: added iCalDefaultTimeZone to create date from iCalDates without timeZone. (solves OGoo bug 257) (v4.2.15) 2003-10-12 Helge Hess * GNUmakefile (libNGiCal_LIBRARIES_DEPEND_UPON): link against libSaxObjC on MacOSX (v4.2.14) Fri Jul 18 17:04:55 2003 Martin Hoerning * iCalToDo.h, iCalPerson.h, iCalEvent.h, iCalEntityObject.h: added accessor-methods to interface (v4.2.13) 2003-07-18 Helge Hess * iCalDateHolder.m: replaces and indexOfString with rangeOfString, thanks to Filip Van Raemdonck for pointing that out (v4.2.12) 2003-03-21 Helge Hess * added some method prototypes 2003-03-13 Helge Hess * moved iCalEntityObject to a separate file (v4.2.11) Mon Mar 10 18:41:10 2003 Bjoern Stierand * NGiCal.xmap: added missing attendee attributes (as dictated by mh on the phone) 2003-03-10 Helge Hess * iCalPerson.h: added some method prototypes 2003-02-24 Helge Hess * iCalObject.h: added some accessors (v4.2.10) 2003-02-12 Helge Hess * moved to skyrix-core (v4.2.9) 2003-01-13 Helge Hess * added some support for timezones to be able to parse Evolution apt creation requests (v4.2.7) 2002-10-14 Helge Hess * added iCalDateHolder for decoding xCal date values with timezone attributes to a NSCalendarDate * iCalObject.m: ignore X- keys * removed all the old stuff (v4.2.4) * ICalVEvent.m: renamed -class to -eventClass since -class conflicts with the NSObject method * started XML based iCal (v4.2.3) 2002-10-10 Helge Hess * ICalParser.m: small cleanups (v4.2.2) 2002-10-04 Helge Hess * created ChangeLog, created NGiCal library into SkyCore