sogo/SOPE/NGCards/ChangeLog

1164 lines
38 KiB
Plaintext
Raw Normal View History

2010-06-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalXMLRenderer.m: new class module for exporting iCalCalendar
objects as XML files.
* iCalUTCOffset.m: new class module for handling of the
"tzoffsetfrom" and "tzoffsetto" elements.
2010-05-05 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalPerson.m (-setParticipationStatus:, -participationStatus):
added handling of the new partstat value
"iCalPersonPartStatUndefined".
* iCalEntityObject.m (-resources): removed useless method.
(-nonParticipants): new method returning ATTENDEE objects having
their ROLE attribute set to "NON-PARTICIPANT".
(-isAttendee:): new method.
(-findAttendeeWithEmail): new method replacing
"findParticipantWithEmail:".
2010-04-28 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalRecurrenceRule.m (-iCalRepresentationForWeekDay:): made
method "public" in the header file.
2010-04-22 Francis Lachapelle <flachapelle@inverse.ca>
* iCalYearlyRecurrenceCalculator.m
(-recurrenceRangesWithinCalendarDateRange:): the rule interval
must be reset to 1 when using the monthly calculator since the
interval is related to the yearly frequency. Also fixed the month
counter with respect to the recurrence interval.
* iCalWeeklyRecurrenceCalculator.m
(-recurrenceRangesWithinCalendarDateRange:): fixed the computation
of the week number which results in a bad verification of the interval.
2010-04-19 Francis Lachapelle <flachapelle@inverse.ca>
* iCalByDayMask.[h|m]: new class that computes complex BYDAY constraints.
* iCalRecurrenceRule.m (-byDayMask): new method that returns an
instance of iCalByDayMask.
(-byMonth): new method that returns an array with the values of
the BYMONTH constraint.
(-hasByMask): new method that returns true if the rule has at
least one BYxxx mask defined.
* iCalDailyRecurrenceCalculator.m
(-recurrenceRangesWithinCalendarDateRange:): make use of the new
iCalByDayMask class.
(-lastInstanceStartDate): make use of the previous method when a
BYxxx mask is defined in the rule.
* iCalWeeklyRecurrenceCalculator.m
(-recurrenceRangesWithinCalendarDateRange:): make use of the new
iCalByDayMask class.
(-lastInstanceStartDate): make use of the previous method when a
BYxxx mask is defined in the rule.
* iCalMonthlyRecurrenceCalculator.m
(-recurrenceRangesWithinCalendarDateRange:): added support for
BYMONTH, negative BYMONTHDAY, and BYDAY.
(-lastInstanceStartDate): make use of the previous method when a
BYxxx mask is defined in the rule.
* iCalYearlyRecurrenceCalculator.m
(-recurrenceRangesWithinCalendarDateRange:): added support for
BYxxx constraints using the iCalMonthlyRecurrenceCalculator class.
(-lastInstanceStartDate): make use of the previous method when a
BYxxx mask is defined in the rule.
* iCalTimeZonePeriod.m (-_occurenceForDate:byRRule:): make use of
the new iCalByDayMask class.
2010-04-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalEvent.m (-propertyValue:): new method that accept a
key-based method invocation.
2010-03-22 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalTimeZonePeriod.m (_occurenceForDate:byRRule:): fixed
computing of timezone switch dates for periods starting at a
"negative" day of the month.
2010-03-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalTimeZone.m (-periodForDate:): the order in which daylight
and standard occur is not the same in the northern and southern
hemisphere. We were thus choosing the wrong period for southern
areas.
* iCalTimeZonePeriod.m (_occurenceForDate:byRRule:): fixed
computing of timezone switch dates, which were offset by one week
too early.
2010-01-06 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <flachapelle@inverse.ca>
* iCalDateTime.m (-setTimeZone:): don't add the time in case of an
all-day component.
2009-10-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* CardElement.m (-copyWithZone:): we release the "tag" and the
"group" copy to avoid a leak.
(-mutableCopyWithZone): same as above.
2009-09-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* NSArray+NGCards.m (-renderedForCards): insert the non-blank
values at their correct positions by inserting empty strings.
2009-09-10 Francis Lachapelle <flachapelle@inverse.ca>
* 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 <crobert@inverse.ca>
* 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 <crobert@inverse.ca>
* NGVCard.m (ldifString): Added, to support exporting
* NGVList.m (ldifString): Added, to support exporting
2009-08-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <crobert@inverse.ca>
* iCalPerson.m: Lowercased MAILTO to make it work with iCal.
2009-04-21 Francis Lachapelle <flachapelle@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <flachapelle@inverse.ca>
* iCalDateTime.m ([iCalDateTime -dateTime]): when not defined, the
timezone is now guessed from the date of the current object.
2009-02-06 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* CardElement.m ([CardElement -setParent:aParent]): no longer
retain the parent passed as parameter.
2008-12-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <lmarcotte@inverse.ca>
* NSString+NGCards.m ([NSString -unescapedFromCard]): added code
to correctly escape carriage returns from Outlook clients.
2008-08-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalDateTime.m ([iCalDateTime -setDate:dateTime]): don't set
date in utc.
2008-07-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalEntityObject.m ([iCalEntityObject -setRecurrenceId:newRecId])
([iCalEntityObject -recurrenceId]): new accessors to handle the
"RECURRENCE-ID" fields in recurrence exceptions.
2008-07-07 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* CardGroup.m ([CardGroup +parseFromSource:source]): directly
return the result from [sax cards] instead of creating a new array.
2008-07-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalFreeBusy.m ([iCalFreeBusy
-fillStartDate:startDateandEndDate:endDate]): new method created
to avoid enlarging the code.
2008-04-02 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalRecurrenceRule.m ([iCalRecurrenceRule -repeatInterval]):
return 1 if the parsed value is < 1.
2007-12-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalDateTime.m ([iCalDateTime -timeZone]): log a message if the
corresponding timezone isn't found.
2007-11-26 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalEntityObject.m ([iCalEntityObject -compare:otherObject]):
safely compare between objects which may be nil.
2007-11-18 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* CardElement.m ([CardElement -value:anInt]): added handling for
quoted-printable, base64 and 8bit encoding attributes.
2007-08-07 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <helge.hess@opengroupware.org>
* 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 <wsourdeau@inverse.ca>
* iCalToDo.m ([iCalToDo -setDue:newDueDate]): use setDateTime:
instead of setDate: because the latter sets an "all day"
timestamp.
2007-07-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* NGVCard.m ([NGVCard -n]): simplified method by returning the
values of the element returned by uniqueChildWithTag:.
2007-03-07 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* iCalEntityObject.h (enum): added an enum with iCalAccessPublic,
iCalAccessPrivate and iCalAccessConfidential values.
2007-02-15 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* CardGroup.m ([CardGroup -firstChildWithTag:aTag]): new method.
2007-02-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* 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 <wsourdeau@inverse.ca>
* CardElement.m ([CardElement -namedValue:aValueName]): use
NSString's rangeOfString instead of indexOfString for
compatibility with GNUstep.
2007-02-02 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* NGVCard.m ([NGVCard -classForTag:classTag]): declare an entry
for "FBURL".
2006-08-03 Helge Hess <helge.hess@opengroupware.org>
* 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 <helge.hess@opengroupware.org>
* use %p for pointer formats, fixed gcc 4.1 warnings (v4.5.75)
2006-05-16 Marcus Mueller <znek@mulle-kybernetik.com>
* iCalDataSource.h, common.h: changed EOControl related includes into
imports to enable compilation against MulleEOF (v4.5.74)
2006-04-07 Marcus Mueller <znek@mulle-kybernetik.com>
* iCalEntityObject.h: added missing forward declaration for
gstep-base compile (v4.5.73)
2006-04-06 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* iCalRecurrenceRule.m: properly include NSString+Ext.h to avoid a
warning during Cocoa compilation (v4.5.71)
2005-11-17 Helge Hess <helge.hess@opengroupware.org>
* include string.h where required (v4.5.70)
2005-10-05 Helge Hess <helge.hess@opengroupware.org>
* iCalMonthlyRecurrenceCalculator.m: implemented calculation of
negative byday occurrences (eg -1TH) (v4.5.69)
2005-09-22 Helge Hess <helge.hess@skyrix.com>
* 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 <helge.hess@opengroupware.org>
* v4.5.67
* iCalMonthlyRecurrenceCalculator.m: finished 'byday' calculation
* iCalRecurrenceRule.m: added support for 'bymonthday', fixed handling
of occurrence1
2005-09-21 Helge Hess <helge.hess@skyrix.com>
* 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 <helge.hess@opengroupware.org>
* 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 <helge.hess@opengroupware.org>
* iCalRecurrenceRule.m: minor code improvements, more tolerant on
invalid iCal rrule input (v4.5.61)
2005-08-16 Helge Hess <helge.hess@opengroupware.org>
* GNUmakefile, GNUmakefile.preamble: added OSX framework compilation
(v4.5.60)
2005-08-06 Helge Hess <helge.hess@opengroupware.org>
* iCalCalendar.m, NGVCardName.m: fixed gcc 4.0 warnings (v4.5.59)
2005-08-05 Helge Hess <helge.hess@opengroupware.org>
* NGVCardSaxHandler.h: fixed a gcc 4.0 warning (v4.5.58)
2005-07-18 Helge Hess <helge.hess@opengroupware.org>
* 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 <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* added fragile base class version checks (v4.5.55)
2005-07-15 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* v4.5.53
* iCalCalendar.m: added +parseCalendarFromSource: convenience method
* NGVCard.m: properly reset sax driver after parsing
2005-07-15 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* 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 <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* 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 <znek@mulle-kybernetik.com>
* NSCalendarDate+ICal.m: fixed 'gmtcalfmt' which removed seconds from
format for no obvious reason (v4.5.47)
2005-05-31 Helge Hess <helge.hess@skyrix.com>
* NGVCardSaxHandler.m: ensure that types are always uppercase, improved
check for DUPs (v4.5.46)
2005-05-16 Marcus Mueller <znek@mulle-kybernetik.com>
* NGiCal.xcode: reorganized ordering of headers/classes
2005-05-15 Marcus Mueller <znek@mulle-kybernetik.com>
* NGiCal.xcode: added vCard related stuff
2005-05-10 Helge Hess <helge.hess@opengroupware.org>
* NGVCard.m: added support for profile, source, name (v4.5.45)
2005-05-09 Helge Hess <helge.hess@opengroupware.org>
* first version of working vCard SAX handler (v4.5.54)
2005-05-08 Helge Hess <helge.hess@opengroupware.org>
* more work on vCard parsing (v4.5.53)
* work on vCard objects (incomplete) (v4.5.52)
2005-04-25 Helge Hess <helge.hess@opengroupware.org>
* iCalDateHolder.m, iCalDataSource.m: fixed gcc 4.0 warnings (v4.5.51)
2005-03-23 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* NGiCal.xmap: fixed a missing semicolon (did not load on MacOSX)
(v.4.5.46)
2005-02-17 Helge Hess <helge.hess@skyrix.com>
* GNUmakefile.preamble: fixed linking locations for dependencies
(v4.5.45)
2005-02-17 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* 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 <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* 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 <znek@mulle-kybernetik.com>
* NGiCal.xcode: minor changes and updated
2004-12-13 Marcus Mueller <znek@mulle-kybernetik.com>
* iCalPerson.[hm]: added -cnWithoutQuotes and -rfc822Email convenience
methods to simplify client code dealing with these properties
(v4.5.36)
2004-11-07 Marcus Mueller <znek@mulle-kybernetik.com>
* NGiCal.xcode: provide SOPE_{MAJOR,MINOR}_VERSION to the build
2004-11-06 Helge Hess <helge.hess@opengroupware.org>
* iCalRenderer.m: use SOPE version defines for iCalendar product id
(v4.5.35)
2004-11-04 Helge Hess <helge.hess@skyrix.com>
* use Version file for install directory location of sax mapping
2004-10-31 Marcus Mueller <znek@mulle-kybernetik.com>
* iCalAlarm.[hm], iCalEvent.[hm], iCalToDo.[hm],
NGiCal.xmap: added recurrenceRule (v4.3.34)
2004-10-20 Marcus Mueller <znek@mulle-kybernetik.com>
* NGiCal.xcode: added iCalRenderer.[hm], bumped framework version
2004-10-20 Helge Hess <helge.hess@opengroupware.org>
* 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 <znek@mulle-kybernetik.com>
* NGiCal.xmap: added "categories" mapping (v4.3.31)
2004-10-05 Marcus Mueller <znek@mulle-kybernetik.com>
* iCalEntityObject.[hm]: added categories property (v4.3.30)
2004-09-22 Marcus Mueller <znek@mulle-kybernetik.com>
* NGiCal.xcode: fixed several build parameters
2004-09-01 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* 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 <helge.hess@opengroupware.org>
* 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 <znek@mulle-kybernetik.com>
* NGiCal.xcode: new Xcode project
2004-08-20 Helge Hess <helge.hess@opengroupware.org>
* 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 <helge.hess@opengroupware.org>
* 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 <helge.hess@opengroupware.org>
* iCalEvent.h: moved 'status' field to iCalEntityObject, because it is
also available in todo objects (v4.2.23)
2004-06-30 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* v4.2.21
* GNUmakefile.preamble: added prebinding
* GNUmakefile: create GNUmakefile.preamble, GNUmakefile.postamble
2004-05-05 Marcus Mueller <znek@mulle-kybernetik.com>
* 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 <helge.hess@opengroupware.org>
* iCalDataSource.m: added some sanity checks, improved to work better
with Mozilla generated iCal files (v4.2.19)
2003-12-22 Helge Hess <helge.hess@skyrix.com>
* iCalDateHolder.m: small fix not to print a warning for "YYYYMMDD"
style dates (which are supported) (v4.2.18)
2003-12-21 Helge Hess <helge.hess@opengroupware.org>
* 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 <martin@opengroupware.org>
* iCalDateHolder.m: added timeless date format: YYYYMMDD
(solves ogo bug 424) (v4.2.16)
Wed Oct 29 22:04:32 2003 Martin Hoerning <martin@opengroupware.org>
* 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 <helge@opengroupware.org>
* GNUmakefile (libNGiCal_LIBRARIES_DEPEND_UPON): link against
libSaxObjC on MacOSX (v4.2.14)
Fri Jul 18 17:04:55 2003 Martin Hoerning <mh@skyrix.com>
* iCalToDo.h, iCalPerson.h, iCalEvent.h, iCalEntityObject.h: added
accessor-methods to interface (v4.2.13)
2003-07-18 Helge Hess <helge.hess@skyrix.com>
* iCalDateHolder.m: replaces and indexOfString with rangeOfString,
thanks to Filip Van Raemdonck for pointing that out (v4.2.12)
2003-03-21 Helge Hess <helge.hess@skyrix.com>
* added some method prototypes
2003-03-13 Helge Hess <helge.hess@skyrix.com>
* moved iCalEntityObject to a separate file (v4.2.11)
Mon Mar 10 18:41:10 2003 Bjoern Stierand <bjoern@skyrix.com>
* NGiCal.xmap: added missing attendee attributes (as dictated by
mh on the phone)
2003-03-10 Helge Hess <helge.hess@skyrix.com>
* iCalPerson.h: added some method prototypes
2003-02-24 Helge Hess <helge.hess@skyrix.com>
* iCalObject.h: added some accessors (v4.2.10)
2003-02-12 Helge Hess <helge.hess@skyrix.com>
* moved to skyrix-core (v4.2.9)
2003-01-13 Helge Hess <helge.hess@skyrix.com>
* added some support for timezones to be able to parse Evolution
apt creation requests (v4.2.7)
2002-10-14 Helge Hess <helge.hess@skyrix.com>
* 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 <helge.hess@skyrix.com>
* ICalParser.m: small cleanups (v4.2.2)
2002-10-04 Helge Hess <helge.hess@skyrix.com>
* created ChangeLog, created NGiCal library into SkyCore