From: helge Date: Tue, 31 May 2005 11:39:05 +0000 (+0000) Subject: improved vCard type handling X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da5c8878acde0220d2b8ee07dde24a8babdeaae2;p=sope improved vCard type handling git-svn-id: http://svn.opengroupware.org/SOPE/trunk@815 e4a50df8-12e2-0310-a44c-efbce7f8a7e3 --- diff --git a/sope-ical/NGiCal/ChangeLog b/sope-ical/NGiCal/ChangeLog index b71bc0be..b4141928 100644 --- a/sope-ical/NGiCal/ChangeLog +++ b/sope-ical/NGiCal/ChangeLog @@ -1,3 +1,8 @@ +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 diff --git a/sope-ical/NGiCal/NGVCardSaxHandler.m b/sope-ical/NGiCal/NGVCardSaxHandler.m index b169e2ed..239ae8bc 100644 --- a/sope-ical/NGiCal/NGVCardSaxHandler.m +++ b/sope-ical/NGiCal/NGVCardSaxHandler.m @@ -159,8 +159,20 @@ v = [_attrs valueAtIndex:i]; if ([n hasSuffix:@".type"] || [n isEqualToString:@"TYPE"]) { - if (![self->types containsObject:v]) - [self->types addObjectsFromArray:[v componentsSeparatedByString:@" "]]; + /* + Note: types cannot be separated by comma! Its indeed always a space,eg + "work pref voice" + If you find commas, usually the vCard is broken. + */ + NSEnumerator *e; + NSString *k; + + e = [[v componentsSeparatedByString:@" "] objectEnumerator]; + while ((k = [e nextObject]) != nil) { + k = [k uppercaseString]; + if ([self->types containsObject:k]) continue; + [self->types addObject:k]; + } } else [self->args setObject:v forKey:n]; diff --git a/sope-ical/NGiCal/Version b/sope-ical/NGiCal/Version index 632bc18a..2473f5b6 100644 --- a/sope-ical/NGiCal/Version +++ b/sope-ical/NGiCal/Version @@ -2,7 +2,7 @@ MAJOR_VERSION=4 MINOR_VERSION=5 -SUBMINOR_VERSION:=54 +SUBMINOR_VERSION:=56 # v4.5.40 requires NGExtensions v4.5.145 # v4.5.37 requires NGExtensions v4.5.140