From ea721cfeb7b09d64c06d71648098dd818df2618c Mon Sep 17 00:00:00 2001 From: Paul Gardiner Date: Tue, 7 Jan 2014 12:29:47 +0000 Subject: iOS: protect against crashing when handling accented chars in choice fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use conversion assuming ascii as a fallback to assuming utf8. The library should be converting to utf8 but doesn’t currently. --- platform/ios/Classes/MuPageViewNormal.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'platform/ios/Classes') diff --git a/platform/ios/Classes/MuPageViewNormal.m b/platform/ios/Classes/MuPageViewNormal.m index d240592d..ccfcd65c 100644 --- a/platform/ios/Classes/MuPageViewNormal.m +++ b/platform/ios/Classes/MuPageViewNormal.m @@ -1309,7 +1309,14 @@ static void updatePixmap(fz_document *doc, fz_display_list *page_list, fz_displa (void)pdf_choice_widget_options(idoc, focus, opts); NSMutableArray *arr = [[NSMutableArray arrayWithCapacity:nopts] retain]; for (int i = 0; i < nopts; i++) - [arr addObject:[NSString stringWithUTF8String:opts[i]]]; + { + NSString *utf8 = [NSString stringWithUTF8String:opts[i]]; + // FIXME: temporary patch to handle the library not converting to utf8 + if (utf8 == nil) + utf8 = [NSString stringWithCString:opts[i] encoding:NSASCIIStringEncoding]; + if (utf8 != nil) + [arr addObject:utf8]; + } dispatch_async(dispatch_get_main_queue(), ^{ [self invokeChoiceDialog:arr]; [arr release]; -- cgit v1.2.3