Revision: 12922 http://sourceforge.net/p/skim-app/code/12922 Author: hofman Date: 2022-05-12 09:44:47 +0000 (Thu, 12 May 2022) Log Message: ----------- normalize options from fragment when adding to dictionary
Modified Paths: -------------- trunk/SKDocumentController.m Modified: trunk/SKDocumentController.m =================================================================== --- trunk/SKDocumentController.m 2022-05-12 09:24:17 UTC (rev 12921) +++ trunk/SKDocumentController.m 2022-05-12 09:44:47 UTC (rev 12922) @@ -498,42 +498,34 @@ return urls; } -static inline void normalizeOptions(NSMutableDictionary *options) { - for (NSString *key in [options allKeys]) { - if ([key isEqualToString:@"autoscales"]) { - id value = [NSNumber numberWithBool:[[options objectForKey:key] boolValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"autoScales"]; - } else if ([key isEqualToString:@"scalefactor"] || [key isEqualToString:@"scale"] || [key isEqualToString:@"zoom"]) { - id value = [NSNumber numberWithDouble:[[options objectForKey:key] doubleValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"scaleFactor"]; - } else if ([key isEqualToString:@"displayspagebreaks"] || [key isEqualToString:@"pagebreaks"]) { - id value = [NSNumber numberWithBool:[[options objectForKey:key] boolValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"displaysPageBreaks"]; - } else if ([key isEqualToString:@"displaysasbook"] || [key isEqualToString:@"book"]) { - id value = [NSNumber numberWithBool:[[options objectForKey:key] boolValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"displaysAsBook"]; - } else if ([key isEqualToString:@"displaymode"] || [key isEqualToString:@"mode"]) { - id value = [NSNumber numberWithInteger:[[options objectForKey:key] integerValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"displayMode"]; - } else if ([key isEqualToString:@"displaydirection"] || [key isEqualToString:@"direction"] || [key isEqualToString:@"horizontal"]) { - id value = [NSNumber numberWithInteger:[[options objectForKey:key] integerValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"displayDirection"]; - } else if ([key isEqualToString:@"displaysrtl"] || [key isEqualToString:@"rtl"]) { - id value = [NSNumber numberWithInteger:[[options objectForKey:key] integerValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"displaysRTL"]; - } else if ([key isEqualToString:@"displaybox"] || [key isEqualToString:@"box"]) { - id value = [NSNumber numberWithInteger:[[options objectForKey:key] integerValue]]; - [options removeObjectForKey:key]; - [options setObject:value forKey:@"displayBox"]; - } +static inline void addNormalizedOption(NSMutableDictionary *options, NSString *key, NSString *valueString) { + id value = valueString; + if ([key isEqualToString:@"autoscales"]) { + value = [NSNumber numberWithBool:[valueString boolValue]]; + key = @"autoScales"; + } else if ([key isEqualToString:@"scalefactor"] || [key isEqualToString:@"scale"] || [key isEqualToString:@"zoom"]) { + value = [NSNumber numberWithDouble:[valueString doubleValue]]; + key = @"scaleFactor"; + } else if ([key isEqualToString:@"displayspagebreaks"] || [key isEqualToString:@"pagebreaks"]) { + value = [NSNumber numberWithBool:[valueString boolValue]]; + key = @"displaysPageBreaks"; + } else if ([key isEqualToString:@"displaysasbook"] || [key isEqualToString:@"book"]) { + value = [NSNumber numberWithBool:[valueString boolValue]]; + key = @"displaysAsBook"; + } else if ([key isEqualToString:@"displaymode"] || [key isEqualToString:@"mode"]) { + value = [NSNumber numberWithInteger:[valueString integerValue]]; + key = @"displayMode"; + } else if ([key isEqualToString:@"displaydirection"] || [key isEqualToString:@"direction"] || [key isEqualToString:@"horizontal"]) { + value = [NSNumber numberWithInteger:[valueString integerValue]]; + key = @"displayDirection"; + } else if ([key isEqualToString:@"displaysrtl"] || [key isEqualToString:@"rtl"]) { + value = [NSNumber numberWithInteger:[valueString integerValue]]; + key = @"displaysRTL"; + } else if ([key isEqualToString:@"displaybox"] || [key isEqualToString:@"box"]) { + value = [NSNumber numberWithInteger:[valueString integerValue]]; + key = @"displayBox"; } + [options setObject:value forKey:key]; } static inline NSDictionary *optionsFromFragmentAndEvent(NSString *fragment) { @@ -541,9 +533,8 @@ for (NSString *fragmentItem in [fragment componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"&#"]]) { NSUInteger i = [fragmentItem rangeOfString:@"="].location; if (i != NSNotFound) - [options setObject:[[fragmentItem substringFromIndex:i + 1] stringByRemovingPercentEncoding] forKey:[[fragmentItem substringToIndex:i] lowercaseString]]; + addNormalizedOption(options, [[fragmentItem substringToIndex:i] lowercaseString], [[fragmentItem substringFromIndex:i + 1] stringByRemovingPercentEncoding]); } - normalizeOptions(options); if ([[NSUserDefaults standardUserDefaults] boolForKey:SKDisableSearchAfterSpotlighKey] == NO && [options objectForKey:@"search"] == NO) { NSAppleEventDescriptor *event = [[NSAppleEventManager sharedAppleEventManager] currentAppleEvent]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit