diff --git a/SOPE/NGCards/NSDictionary+NGCards.m b/SOPE/NGCards/NSDictionary+NGCards.m index 109db067c..44d439bcb 100644 --- a/SOPE/NGCards/NSDictionary+NGCards.m +++ b/SOPE/NGCards/NSDictionary+NGCards.m @@ -53,10 +53,10 @@ [aString appendString: @","]; subValue = [self objectAtIndex: count]; - /* We MUST quote attribute values that have a ":" in them + /* We MUST quote attribute values that have a ":" or "," in them and that not already quoted */ if (asAttributes && [subValue length] > 2 - && [subValue rangeOfString: @":"].length + && ([subValue rangeOfString: @":"].length || [subValue rangeOfString: @","].length) && [subValue characterAtIndex: 0] != '"' && ![subValue hasSuffix: @"\""]) subValue = [NSString stringWithFormat: @"\"%@\"", subValue]; diff --git a/Tests/Unit/TestVersit.m b/Tests/Unit/TestVersit.m index e09dce49f..4c22ff639 100644 --- a/Tests/Unit/TestVersit.m +++ b/Tests/Unit/TestVersit.m @@ -206,7 +206,7 @@ testEquals([element value: 0 ofAttribute: @"param1"], @"paramvalue1"); testEquals([element value: 1 ofAttribute: @"param1"], @"paramvalue2"); - versit = @"BEGIN:GROUP1\r\nELEMENT;PARAM1=paramvalue1\\, with comma:value\r\nEND:GROUP1"; + versit = @"BEGIN:GROUP1\r\nELEMENT;PARAM1=\"paramvalue1, with comma\":value\r\nEND:GROUP1"; group = [CardGroup parseSingleFromSource: versit]; testEquals([group versitString], versit); element = [group firstChildWithTag: @"element"];