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


