Skip to content

Commit

Permalink
fix(calendar): fix crash when using a 2*16bits chars at the 75th char…
Browse files Browse the repository at this point in the history
… of ics file
  • Loading branch information
QHivert committed May 24, 2024
1 parent ebca25c commit 31c0473
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions SOPE/NGCards/NSString+NGCards.m
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,27 @@ - (NSString *) foldedForVersitCards
[foldedString appendString: self];
else
{
subStringRange = NSMakeRange (0, 75);
[foldedString appendFormat: @"%@\r\n",
[self substringWithRange: subStringRange]];
subStringRange = NSMakeRange (75, 74);
//Check if the 75th chars is a 2*16bits chars, in this case, cut one char before
unichar c = [self characterAtIndex: 74];
int substringCut;
if (c >= 0xD800 && c <= 0xDBFF)
substringCut = 74;
else
substringCut = 75;
subStringRange = NSMakeRange (0, substringCut);
[foldedString appendFormat: @"%@\r\n", [self substringWithRange: subStringRange]];

subStringRange = NSMakeRange (substringCut, 74);
while ((length - subStringRange.location) > 75)
{
[foldedString appendFormat: @" %@\r\n",
[self substringWithRange: subStringRange]];
subStringRange.location += 74;
c = [self characterAtIndex: (subStringRange.location+subStringRange.length-1)];
if (c >= 0xD800 && c <= 0xDBFF)
subStringRange.length--;
[foldedString appendFormat: @" %@\r\n", [self substringWithRange: subStringRange]];
subStringRange.location += subStringRange.length;
}
subStringRange.length = length - subStringRange.location;
[foldedString appendFormat: @" %@",
[self substringWithRange: subStringRange]];
[foldedString appendFormat: @" %@", [self substringWithRange: subStringRange]];
}

return foldedString;
Expand Down

0 comments on commit 31c0473

Please sign in to comment.