diff --git a/SOPE/NGCards/CardVersitRenderer.m b/SOPE/NGCards/CardVersitRenderer.m index 6714ce09f..d2a206daf 100644 --- a/SOPE/NGCards/CardVersitRenderer.m +++ b/SOPE/NGCards/CardVersitRenderer.m @@ -75,33 +75,33 @@ [rendering appendString: [tag uppercaseString]]; attributes = [anElement attributes]; keys = [[attributes allKeys] objectEnumerator]; - key = [keys nextObject]; - while (key) + while ((key = [keys nextObject])) { NSString *s; int i, c; renderedAttrs = [[attributes objectForKey: key] renderedForCards]; - [rendering appendFormat: @";%@=", [key uppercaseString]]; c = [renderedAttrs count]; + if (c > 0) + { + [rendering appendFormat: @";%@=", [key uppercaseString]]; - for (i = 0; i < c; i++) - { - s = [renderedAttrs objectAtIndex: i]; + for (i = 0; i < c; i++) + { + s = [renderedAttrs objectAtIndex: i]; - // We MUST quote attribute values that have a ":" in them and that - // not already quoted - if ([s length] > 2 && [s rangeOfString: @":"].length && - [s characterAtIndex: 0] != '"' && ![s hasSuffix: @"\""]) - s = [NSString stringWithFormat: @"\"%@\"", s]; + /* We MUST quote attribute values that have a ":" in them + and that not already quoted */ + if ([s length] > 2 && [s rangeOfString: @":"].length && + [s characterAtIndex: 0] != '"' && ![s hasSuffix: @"\""]) + s = [NSString stringWithFormat: @"\"%@\"", s]; - [rendering appendFormat: @"%@", s]; + [rendering appendFormat: @"%@", s]; - if (i+1 < c) - [rendering appendString: @","]; - } - - key = [keys nextObject]; + if (i+1 < c) + [rendering appendString: @","]; + } + } } values = [anElement values]; diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index c54f4a541..4fec6f76c 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,12 @@ +2009-08-27 Wolfgang Sourdeau + + * 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. diff --git a/SOPE/NGCards/NSArray+NGCards.m b/SOPE/NGCards/NSArray+NGCards.m index 5ea2aa460..96241f8cb 100644 --- a/SOPE/NGCards/NSArray+NGCards.m +++ b/SOPE/NGCards/NSArray+NGCards.m @@ -114,12 +114,9 @@ purified = [NSMutableArray arrayWithCapacity: [self count]]; strings = [self objectEnumerator]; - string = [strings nextObject]; - while (string) - { + while ((string = [strings nextObject])) + if ([string length] > 0) [purified addObject: [string escapedForCards]]; - string = [strings nextObject]; - } return purified; }