]> err.no Git - sope/blobdiff - sope-ical/NGiCal/NSCalendarDate+ICal.m
improved API, bugfix for recurrent dates
[sope] / sope-ical / NGiCal / NSCalendarDate+ICal.m
index 7a51986c9dfb65b581c913a666049660a557af9f..dd5b70a9ae7391f8659775dd19427e19585fa203 100644 (file)
@@ -20,6 +20,7 @@
 */
 
 #include "NSCalendarDate+ICal.h"
+#include "iCalDateHolder.h"
 #include "common.h"
 
 static NSTimeZone *gmt = nil;
@@ -28,12 +29,27 @@ static inline void _setupGMT(void) {
     gmt = [[NSTimeZone timeZoneWithAbbreviation:@"GMT"] retain];
 }
 
-@implementation NSCalendarDate(ICalValue)
+@interface iCalDateHolder (PrivateAPI)
+- (id)awakeAfterUsingSaxDecoder:(id)_decoder;
+@end
+
+@implementation NSCalendarDate(iCalRepresentation)
 
 /* represention */
 
 static NSString *gmtcalfmt = @"%Y%m%dT%H%M00Z";
 
++ (id)calendarDateWithICalRepresentation:(NSString *)_iCalRep {
+  iCalDateHolder *dh;
+  NSCalendarDate *date;
+  
+  dh = [[iCalDateHolder alloc] init];
+  [dh setString:_iCalRep];
+  date = [dh awakeAfterUsingSaxDecoder:nil];
+  [dh release];
+  return date;
+}
+
 - (NSString *)icalStringInGMT {
   NSTimeZone *oldtz;
   NSString   *s;