2010-01-06 Wolfgang Sourdeau * iCalDateTime.m (-setTimeZone:): don't modify the date in case of an all-day value, otherwise the resulting date will be recomputed. 2009-10-19 Francis Lachapelle * iCalDateTime.m (-setTimeZone:): don't add the time in case of an all-day component. 2009-10-10 Wolfgang Sourdeau * CardElement.m (-copyWithZone:): we release the "tag" and the "group" copy to avoid a leak. (-mutableCopyWithZone): same as above. 2009-09-24 Wolfgang Sourdeau * NSArray+NGCards.m (-renderedForCards): insert the non-blank values at their correct positions by inserting empty strings. 2009-09-10 Francis Lachapelle * iCalPerson.m ([iCalPerson -_valueOfMailtoAttribute:]): fixed the string range that was removing valid characters from a quoted string. * NSString+NGCards.m ([NSString -rfc822Email]): new method that returns the string without the "mailto:" prefix. 2009-09-09 Cyril Robert * NGVCard.m: Made use of NSDictionary+Utilities' userRecordAsLDIFEntry. * NGVList.m: Made use of NSDictionary+Utilities' userRecordAsLDIFEntry. * NGVCard.m (ldifString): Moved to a category in SOGo * NGVList.m (ldifString): Moved to a category in SOGo 2009-09-02 Cyril Robert * NGVCard.m (ldifString): Added, to support exporting * NGVList.m (ldifString): Added, to support exporting 2009-08-27 Wolfgang Sourdeau * iCalPerson.m (-setDelegatedTo:, -setDelegatedFrom:) (-setSentBy:): new helper methods to set the corresponding attributes, properly formatted. The getters were added too. * iCalEntityObject.m (-removeFromAttendees:): new helper method to remove a specific attendee from the list. * NSArray+NGCards.m (-renderedForCards): empty values are not returned, so as to avoid rendering attributes that do not have a value. * CardVersitRenderer.m (-renderElement:): we avoid outputting attribute keys if no non-empty value has been returned. 2009-07-17 Cyril Robert * iCalPerson.m: Lowercased MAILTO to make it work with iCal. 2009-04-21 Francis Lachapelle * iCalTrigger.m ([iCalTrigger -setRelationType:]): new method to set the "related" attribute of an alarm trigger. * NSString+NGCards.m ([NSString -durationAsTimeInterval]): added support of negative durations. 2009-03-24 Wolfgang Sourdeau * iCalWeeklyRecurrenceCalculator.m ([iCalWeeklyRecurrenceCalculator -recurrenceRangesWithinCalendarDateRange:_r]): same as below. * iCalDailyRecurrenceCalculator.m ([iCalDailyRecurrenceCalculator -recurrenceRangesWithinCalendarDateRange:_r]): autorelease currentStartDate when instantiated from a copy of firDate, to avoid a leak. 2009-03-18 Francis Lachapelle * iCalDateTime.m ([iCalDateTime -dateTime]): when not defined, the timezone is now guessed from the date of the current object. 2009-02-06 Wolfgang Sourdeau * CardElement.m ([CardElement -setParent:aParent]): no longer retain the parent passed as parameter. 2008-12-10 Wolfgang Sourdeau * iCalYearlyRecurrenceCalculator.m ([iCalYearlyRecurrenceCalculator -lastInstanceStartDate]): same as below. * iCalMonthlyRecurrenceCalculator.m ([iCalMonthlyRecurrenceCalculator -lastInstanceStartDate]): same as below. * iCalWeeklyRecurrenceCalculator.m ([iCalWeeklyRecurrenceCalculator -lastInstanceStartDate]): same as below. * iCalDailyRecurrenceCalculator.m ([iCalDailyRecurrenceCalculator -lastInstanceStartDate]): return a date based on the start date, instead of julian calculations, to avoid losing the original date timezone. 2008-08-18 Ludovic Marcotte * NSString+NGCards.m ([NSString -unescapedFromCard]): added code to correctly escape carriage returns from Outlook clients. 2008-08-04 Wolfgang Sourdeau * CardGroup.m ([CardGroup -elementWithClass:groupClass]): replaces "groupWithClass:". * CardElement.m ([CardElement -deepCopyOfArray:oldArraywithZone:aZone]): new self-explaining method. ([CardElement -deepCopyOfDictionary:oldDictionarywithZone:aZone]): new self-explaining method. ([CardElement -copyWithZone:aZone]) ([CardElement -mutableCopyWithZone:aZone]): make a deep copy of the children elements. 2008-07-17 Wolfgang Sourdeau * iCalRepeatableEntityObject.m ([iCalRepeatableEntityObject -addToExceptionDates:_rdate]): the iCalDateTime argument was replaced with NSCalendarDate. * iCalEntityObject.m ([iCalEntityObject -setOrganizer:_organizer]): now accepts a nil argument. * CardGroup.m ([CardGroup -children]): now returns an NSMutableArray. ([CardGroup -copyWithZone:aZone]) ([CardGroup -mutableCopyWithZone:aZone]): the children were not properlty cloned, we thus clone them explicitly. 2008-07-16 Wolfgang Sourdeau * iCalDateTime.m ([iCalDateTime -setDate:dateTime]): don't set date in utc. 2008-07-14 Wolfgang Sourdeau * ICalDateHolder.m: removed class module. * NSCalendarDate+ICal.m ([NSCalendarDate +calendarDateWithICalRepresentation:]): removed method. * iCalRecurrenceCalculator.m: no longer use the calendarDateWithICalRepresentation: category method (removed), use NSString's asCalendarDate category method instead. * iCalRepeatableEntityObject.m ([iCalRepeatableEntityObject -classForTag:classTag]): instances of EXDATE are of iCalDateTime class. ([iCalRepeatableEntityObject -exceptionDates]): return the dates as utc-based date strings. 2008-07-11 Wolfgang Sourdeau * iCalEntityObject.m ([iCalEntityObject -setRecurrenceId:newRecId]) ([iCalEntityObject -recurrenceId]): new accessors to handle the "RECURRENCE-ID" fields in recurrence exceptions. 2008-07-07 Wolfgang Sourdeau * CardElement.m ([CardElement -addValue:aValue]) ([CardElement -addAttribute:anAttributevalue:aValue]) ([CardElement -removeValue:aValuefromAttribute:anAttribute]) ([CardElement -setValue:anIntto:aValue]) ([CardElement -setNamedValue:aValueNameto:aValue]) ([CardElement -setValue:anIntofAttribute:anAttributeto:aValue]): if aValue is nil, set it to an empty string. 2008-07-04 Wolfgang Sourdeau * CardGroup.m ([CardGroup +parseFromSource:source]): directly return the result from [sax cards] instead of creating a new array. 2008-07-03 Wolfgang Sourdeau * iCalEvent.m ([iCalEvent -endDate]): if no DTEND is specified, returns the end date based on the start date and take the duration into account if it is specified. 2008-06-30 Wolfgang Sourdeau * iCalFreeBusy.m ([iCalFreeBusy -fillStartDate:startDateandEndDate:endDate]): new method created to avoid enlarging the code. 2008-04-02 Wolfgang Sourdeau * iCalRecurrenceCalculator.m ([iCalRecurrenceCalculator +recurrenceRangesWithinCalendarDateRange:_rfirstInstanceCalendarDateRange:_firrecurrenceRules:_rRulesexceptionRules:_exRulesexceptionDates:_exDates]): when removing dates, the decremental count of dates to remove was actually incremental, which caused an out of bound reference exception. 2008-03-26 Wolfgang Sourdeau * iCalRecurrenceRule.m ([iCalRecurrenceRule -byMonthDay]): check whether the "bymonthday" value is empty and returns an array only if not, otherwise returns nil. * iCalRecurrenceCalculator.m ([iCalRecurrenceCalculator +recurrenceRangesWithinCalendarDateRange:_rfirstInstanceCalendarDateRange:_firrecurrenceRules:_rRulesexceptionRules:_exRulesexceptionDates:_exDates]): split method in many submethods for clarity. 2008-03-10 Wolfgang Sourdeau * iCalTimeZonePeriod.m ([iCalTimeZonePeriod -dayOfWeekFromRruleDay:day]): the algorithm would never work if the day was monday. After it was changed for sunday (see below), it would return 1 instead of 0. * iCalRecurrenceRule.m ([iCalRecurrenceRule -setByDayMask:_mask]): the first day of the week is always sunday, following Apple's documentation. 2008-03-03 Wolfgang Sourdeau * NGVCardReference.[hm]: new class module that implements the base data type contained in a VLIST element. * NGVList.[hm]: new class module that implements Thunderbird-style personal mailing lists. Base mime-type is "text/x-vlist". 2008-02-08 Wolfgang Sourdeau * iCalRecurrenceRule.m ([iCalRecurrenceRule -wkst]): if no wkst parameter is specified, we supply "MO" as default value. ([iCalRecurrenceRule -weekDayFromICalRepresentation:_day]): the second letter of sunday if "u", fixed typo. * CardElement.m ([CardElement -setNamedValue:aValueNameto:aValue]): if the value is empty, we removed the named value. 2008-01-28 Wolfgang Sourdeau * iCalRecurrenceRule.m ([iCalRecurrenceRule -weekDayFromICalRepresentation:_day]): issue an error whenever the day cannot be deduced. Accept days notated with a prefix. ([iCalRecurrenceRule -byDayMask]): don't strip the represented day, feed it directly to weekDayFromICalRepresentation: since it will do the correct syntax validation. * iCalDailyRecurrenceCalculator.m ([iCalDailyRecurrenceCalculator -recurrenceRangesWithinCalendarDateRange:]): make use of << instead of exp2 to compute the mask. 2008-01-22 Wolfgang Sourdeau * iCalRecurrenceRule.m ([iCalRecurrenceRule -repeatInterval]): return 1 if the parsed value is < 1. 2007-12-20 Wolfgang Sourdeau * NSString+NGCards.m ([NSString -componentsWithSafeSeparator:separator]): new method that separated the elements of a string into an array while avoiding escaped instances of the separator passed as parameter. 2007-12-12 Wolfgang Sourdeau * iCalTimeZone.m ([iCalTimeZone -periodForDate:date]): at least one timezone period is needed so we might need to fallback on the only one present if the other does not exist. 2007-11-29 Wolfgang Sourdeau * iCalDateTime.m ([iCalDateTime -timeZone]): log a message if the corresponding timezone isn't found. 2007-11-26 Wolfgang Sourdeau * iCalCalendar.m ([iCalCalendar -versitString]): same as below, with "2.0" as value. * NGVCard.m ([NGVCard -versitString]): overriden method by forcing version to "3.0" since it's the format we comply with. 2007-11-22 Wolfgang Sourdeau * iCalEntityObject.m ([iCalEntityObject -compare:otherObject]): safely compare between objects which may be nil. 2007-11-18 Wolfgang Sourdeau * iCalPerson.m ([-rsvp]): return lowercase string. * iCalCalendar.m ([iCalCalendar -setMethod:_value]): convert method to uppercase before setting value. * CardGroup.m ([CardGroup -addChild:aChild]): don't process nil values for aChild. ([CardGroup -setUniqueChild:aChild]): same as above. ([CardGroup -setChildrenAsCopy:someChildren]): reparent the copied children. ([CardGroup -mutableCopyWithZone:aZone]): implemented NSMutableCopying protocol. * CardElement.m ([CardElement -mutableCopyWithZone:aZone]): implemented NSMutableCopying protocol. 2007-11-12 Wolfgang Sourdeau * iCalTimeZonePeriod.m ([iCalTimeZonePeriod -occurenceForDate:refDate]): added support for timezone periods which do not contain a recurrence rule, such as the one provided by iCal. 2007-11-02 Wolfgang Sourdeau * iCalDateHolder.m ([iCalDateHolder -awakeAfterUsingSaxDecoder:]): make use of cStringUsingEncoding: instead of getString:length: to retrieve the buffer content to work-around a bug in gnustep-base. 2007-11-01 Wolfgang Sourdeau * CardGroup.m ([CardGroup +parseFromSource:source]): make sure the given source is not nil, otherwise the parser will raise an exception, which we don't want. 2007-10-29 Wolfgang Sourdeau * CardElement.m ([CardElement -value:anInt]): added handling for quoted-printable, base64 and 8bit encoding attributes. 2007-08-07 Wolfgang Sourdeau * iCalRecurrenceRule.m ([iCalRecurrenceRule -valueForFrequency:value]): returns NSNotFound whenever the frequency text has a length of 0. ([iCalRecurrenceRule -byDayMask]): return an empty mask whenever the "byday" value has a length of 0. 2007-02-12 Helge Hess * iCalMonthlyRecurrenceCalculator.m: fixed byday calculation for days which overflow the number of days in a month. Should fix OGo bug #1829. (v4.7.79) 2007-07-10 Wolfgang Sourdeau * iCalToDo.m ([iCalToDo -setDue:newDueDate]): use setDateTime: instead of setDate: because the latter sets an "all day" timestamp. 2007-07-03 Wolfgang Sourdeau * iCalRecurrenceRule.m ([iCalRecurrenceRule +recurrenceRuleWithICalRepresentation:_iCalRep]): the representation is generally a series of values separated by a ";". Therefore we need to split those values and feed them one by one. ([iCalRecurrenceRule -weekDayFromICalRepresentation:_day]): return -1 instead of raising an exception if the week day could not be recognized. * CardElement.m ([CardElement -versitString]): remove the ending "\r\n". 2007-06-12 Wolfgang Sourdeau * iCalDateTime.m ([iCalDateTime -_setDateTime:dateTimeforAllDayEntity:forAllDayEntity]): take the forAllDayEntity parameter into account when the date entity has a timezone. * iCalTimeZone.m ([iCalTimeZone -dateStringForDate:date]): new method that returns dates formatted for all day events. 2007-06-07 Wolfgang Sourdeau * iCalDateTime.m ([iCalDateTime -_setDateTime:dateTimeforAllDayEntity:forAllDayEntity]): inverted the all day logic because all day dates where generated for regular dates and the other way around... * iCalEvent.m ([iCalEvent -setAllDayWithStartDate:newStartDateduration:days]): new method that sets the start and end dates in an all day fashion. ([iCalEvent -setEndDate:newEndDate]): no longer use the methods provided by the removed module CardGroup+iCal. ([-isAllDay]): reimplemented method by testing if the start day component is an all day date. * iCalEntityObject.m ([iCalEntityObject -setCreated:newCreated]) ([iCalEntityObject -created], [-setLastModified:_value]) ([iCalEntityObject -lastModified]) ([iCalEntityObject -setTimeStampAsDate:newTimeStamp]) ([iCalEntityObject -timeStampAsDate], [-setStartDate:_value]) ([iCalEntityObject -startDate]): no longer use the methods provided by the removed module CardGroup+iCal. * iCalDateTime.m ([iCalDateTime -setDate:dateTime]): take the date passed as parameter as an all day date. ([iCalDateTime -isAllDay]): new method determining whether the current value is an all day value. * NSString+NGCards.m ([NSString -isAllDayDate]): new method that determines whether the date represented in "self" is an all day date (date only) or not (date + time). * CardElement.h: moved IS_EQUAL macro from removed module "common.h". * CardGroup+iCal.[hm]: removed category module. 2007-04-27 Wolfgang Sourdeau * NGVCard.m ([NGVCard -n]): simplified method by returning the values of the element returned by uniqueChildWithTag:. 2007-03-07 Wolfgang Sourdeau * iCalEntityObject.m ([iCalEntityObject -symbolicAccessClass]): new method that parses the "CLASS" element of the card and returns an enum value. * NSString+NGCards.m ([NSString -foldedForVersitCards]): simplified method by initializing and returning folderString unconditionnally. If length < 76, the original string is appended to it. * CardGroup.m ([CardGroup +groupWithTag:aTag]): simply invoke [self elementWithTag:]. ([CardGroup +groupWithTag:aTagchildren:someChildren]): same as above. 2007-03-05 Wolfgang Sourdeau * iCalEntityObject.h (enum): added an enum with iCalAccessPublic, iCalAccessPrivate and iCalAccessConfidential values. 2007-02-15 Wolfgang Sourdeau * CardGroup.m ([CardGroup -firstChildWithTag:aTag]): new method. 2007-02-09 Wolfgang Sourdeau * CardGroup.m ([CardGroup +cardParser]): find the correct parser by requesting a parser by name instead of by mime-type. This way, any parser which would declare the same types would not enter in conflict. 2007-02-08 Wolfgang Sourdeau * CardElement.m ([CardElement -namedValue:aValueName]): use NSString's rangeOfString instead of indexOfString for compatibility with GNUstep. 2007-02-02 Wolfgang Sourdeau * NGVCard.m ([NGVCard -classForTag:classTag]): declare an entry for "FBURL". 2006-08-03 Helge Hess * NGVCardSaxHandler.m: fixed a bug with returning parsing results. Properly make a copy of the vCard array so that -clear doesn't destroy references. Thanks go to Wolfgang Sourdeau for documenting the issue! (v4.5.76) 2006-07-04 Helge Hess * use %p for pointer formats, fixed gcc 4.1 warnings (v4.5.75) 2006-05-16 Marcus Mueller * iCalDataSource.h, common.h: changed EOControl related includes into imports to enable compilation against MulleEOF (v4.5.74) 2006-04-07 Marcus Mueller * iCalEntityObject.h: added missing forward declaration for gstep-base compile (v4.5.73) 2006-04-06 Marcus Mueller * v4.5.72 * iCalEntityObject.[hm]: added "url" property - unfortunately this was missing before. Increased class version to "1". * iCalRepeatableEntityObject.m, iCalEvent.m, iCalToDo.m: adjusted super class version check. 2006-01-16 Helge Hess * iCalRecurrenceRule.m: properly include NSString+Ext.h to avoid a warning during Cocoa compilation (v4.5.71) 2005-11-17 Helge Hess * include string.h where required (v4.5.70) 2005-10-05 Helge Hess * iCalMonthlyRecurrenceCalculator.m: implemented calculation of negative byday occurrences (eg -1TH) (v4.5.69) 2005-09-22 Helge Hess * iCalRecurrenceRule.m: added direct parser support for 'interval', allow 'until' values w/o Z marker for date-only values (v4.5.68) 2005-09-22 Helge Hess * v4.5.67 * iCalMonthlyRecurrenceCalculator.m: finished 'byday' calculation * iCalRecurrenceRule.m: added support for 'bymonthday', fixed handling of occurrence1 2005-09-21 Helge Hess * v4.5.66 * iCalRecurrenceRule.m: temporarily expose byDayOccurence1 until the API is fixed * iCalMonthlyRecurrenceCalculator.m: prepared for byday/bymonthday rule specs * v4.5.65 * iCalMonthlyRecurrenceCalculator.m: fixed calculation of 'count' field * iCalRecurrenceCalculator.m: minor code cleanups * iCalRecurrenceRule.m: improved rrule parser 2005-09-20 Helge Hess * iCalMonthlyRecurrenceCalculator.m: stop calculation if a byday part was detected in the rule (v4.5.64) * iCalRecurrenceCalculator.m: moved cluster subclasses to own source files (v4.5.63) * iCalRecurrenceRule.m: added some parsing/gen support for BYDAY (v4.5.62) 2005-09-19 Helge Hess * iCalRecurrenceRule.m: minor code improvements, more tolerant on invalid iCal rrule input (v4.5.61) 2005-08-16 Helge Hess * GNUmakefile, GNUmakefile.preamble: added OSX framework compilation (v4.5.60) 2005-08-06 Helge Hess * iCalCalendar.m, NGVCardName.m: fixed gcc 4.0 warnings (v4.5.59) 2005-08-05 Helge Hess * NGVCardSaxHandler.h: fixed a gcc 4.0 warning (v4.5.58) 2005-07-18 Helge Hess * iCalPerson.m: added -partStatWithDefault method to retrieve the partstat and return NEEDS-ACTION in case none is set (v4.5.57) 2005-07-15 Marcus Mueller * iCalObject.[hm], iCalEntityObject.m, iCalToDo.m, iCalAlarm.m, iCalPerson.m, iCalCalendar.m, iCalEvent.m, iCalTrigger.m, iCalObject.m, iCalFreeBusy.m, iCalRepeatableEntityObject.m: fixed NSCopying (v4.5.56) 2005-07-15 Helge Hess * added fragile base class version checks (v4.5.55) 2005-07-15 Marcus Mueller * iCalObject.[hm], iCalEntityObject.m, iCalToDo.m, iCalAlarm.m, iCalPerson.m, iCalCalendar.m, iCalEvent.m, iCalTrigger.m, iCalObject.m, iCalFreeBusy.m, iCalRepeatableEntityObject.m: added NSCopying (v4.5.54) 2005-07-15 Helge Hess * v4.5.53 * iCalCalendar.m: added +parseCalendarFromSource: convenience method * NGVCard.m: properly reset sax driver after parsing 2005-07-15 Marcus Mueller * iCalEntityObject.[hm]: added -increaseSequence (v4.5.52) * iCalPerson.m: fixed -hasSameEmailAddress: to lowercase email addresses before attempting comparison (v4.5.51) 2005-07-15 Helge Hess * v4.5.50 * NGiCal.xmap: fixed mapping of 'method' property (is an attribute of the calendar) * iCalCalendar.m: use ASSIGNCOPY in accessors, added 'method' to -description 2005-07-14 Marcus Mueller * v4.5.49 * iCalCalendar.[hm]: added 'method' * iCalEntityObject.[hm]: added 'userComment', changed all email related comparisons to lowercase all strings before comparison * iCalEvent.h: pretty printed iVars * NGiCal.xmap: added mapping for 'comment' -> 'userComment' and 'method' -> 'method' 2005-07-13 Helge Hess * v4.5.48 * NGVCard.m: added some convenience methods to access the preferred email, tel and adr * NGVCardOrg.m: added a convenience method to access the first orgunit 2005-07-05 Marcus Mueller * NSCalendarDate+ICal.m: fixed 'gmtcalfmt' which removed seconds from format for no obvious reason (v4.5.47) 2005-05-31 Helge Hess * NGVCardSaxHandler.m: ensure that types are always uppercase, improved check for DUPs (v4.5.46) 2005-05-16 Marcus Mueller * NGiCal.xcode: reorganized ordering of headers/classes 2005-05-15 Marcus Mueller * NGiCal.xcode: added vCard related stuff 2005-05-10 Helge Hess * NGVCard.m: added support for profile, source, name (v4.5.45) 2005-05-09 Helge Hess * first version of working vCard SAX handler (v4.5.54) 2005-05-08 Helge Hess * more work on vCard parsing (v4.5.53) * work on vCard objects (incomplete) (v4.5.52) 2005-04-25 Helge Hess * iCalDateHolder.m, iCalDataSource.m: fixed gcc 4.0 warnings (v4.5.51) 2005-03-23 Marcus Mueller * v4.5.50 * 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 2005-03-02 Marcus Mueller * iCalRecurrenceCalculator.m: bugfix for monthly and yearly recurrences (v4.5.49) * 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. (v4.5.48) 2005-02-28 Marcus Mueller * v4.5.47 * 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 2005-02-20 Helge Hess * NGiCal.xmap: fixed a missing semicolon (did not load on MacOSX) (v.4.5.46) 2005-02-17 Helge Hess * GNUmakefile.preamble: fixed linking locations for dependencies (v4.5.45) 2005-02-17 Marcus Mueller * v4.5.44 * 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. 2005-02-15 Marcus Mueller * v4.5.43 * 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. * v4.5.42 * 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. 2005-02-14 Helge Hess * v4.5.41 * GNUmakefile.preamble: added missing dependency on libNGExtensions (which also adds the dependency on libDOM) * iCalRecurrenceCalculator.h: fixed missing forward declaration in header 2005-02-12 Marcus Mueller * v4.5.40 * 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 2005-02-11 Marcus Mueller * v4.5.39 * 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 2004-12-17 Marcus Mueller * iCalPerson.[hm]: formalized participationStatus according to RFC2445. Provided convenience API to set status without concrete knowledge of string values involved. (v4.5.38) 2004-12-16 Marcus Mueller * v4.5.37 * iCalEvent.[hm]: Added transparency 'TRANSP'. Also multiple convenience methods provided. * NGiCal.xmap: added proper mapping for 'transp'. 2004-12-14 Marcus Mueller * NGiCal.xcode: minor changes and updated 2004-12-13 Marcus Mueller * iCalPerson.[hm]: added -cnWithoutQuotes and -rfc822Email convenience methods to simplify client code dealing with these properties (v4.5.36) 2004-11-07 Marcus Mueller * NGiCal.xcode: provide SOPE_{MAJOR,MINOR}_VERSION to the build 2004-11-06 Helge Hess * iCalRenderer.m: use SOPE version defines for iCalendar product id (v4.5.35) 2004-11-04 Helge Hess * 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