Revision: 28900 http://sourceforge.net/p/bibdesk/svn/28900 Author: hofman Date: 2024-05-14 09:11:13 +0000 (Tue, 14 May 2024) Log Message: ----------- Template join style with three character prefixes and +
Modified Paths: -------------- trunk/bibdesk/NSArray_BDSKExtensions.h trunk/bibdesk/NSArray_BDSKExtensions.m trunk/bibdesk/TemplateOptions.plist Modified: trunk/bibdesk/NSArray_BDSKExtensions.h =================================================================== --- trunk/bibdesk/NSArray_BDSKExtensions.h 2024-05-13 16:06:18 UTC (rev 28899) +++ trunk/bibdesk/NSArray_BDSKExtensions.h 2024-05-14 09:11:13 UTC (rev 28900) @@ -87,6 +87,7 @@ @property (nonatomic, readonly) NSString *componentsJoinedByCommaAndAmpersandWithSingleEtAlAfterFive; @property (nonatomic, readonly) NSString *componentsJoinedByCommaAndAmpersandWithEtAlAfterSix; @property (nonatomic, readonly) NSString *componentsJoinedByCommaWithEtAlAfterSix; +@property (nonatomic, readonly) NSString *prefixesJoinedWithPlusAfterThree; @property (nonatomic, readonly) NSArray *indexRanges; @property (nonatomic, readonly) NSArray *indexRangeStrings; Modified: trunk/bibdesk/NSArray_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSArray_BDSKExtensions.m 2024-05-13 16:06:18 UTC (rev 28899) +++ trunk/bibdesk/NSArray_BDSKExtensions.m 2024-05-14 09:11:13 UTC (rev 28900) @@ -257,6 +257,29 @@ return [self count] > 6 ? [[[self firstSixObjects] componentsJoinedByComma] stringByAppendingString:@", et al."] : [self componentsJoinedByComma]; } +- (NSString *)prefixesJoinedWithPlusAfterThree +{ + if ([self count] == 0) { + return @""; + } else if ([self count] == 1) { + static NSCharacterSet *charSet = nil; + if (charSet == nil) + charSet = [NSCharacterSet characterSetWithCharactersInString:@" .-"]; + NSString *string = [[self firstObject] description]; + return [string substringToIndex:MIN(MIN(3, [string length]), [string rangeOfCharacterFromSet:charSet].location)]; + } else { + NSMutableString *string = [NSMutableString string]; + for (NSUInteger i = 0; i < MIN(3, [self count]); i++) { + NSString *s = [[self objectAtIndex:i] description]; + if ([s length]) + [string appendString:[s substringToIndex:1]]; + } + if ([self count] > 3) + [string appendString:@"+"]; + return string; + } +} + - (NSArray *)indexRanges { NSMutableArray *array = [NSMutableArray array]; NSInteger start = NSIntegerMin, end = NSIntegerMin; Modified: trunk/bibdesk/TemplateOptions.plist =================================================================== --- trunk/bibdesk/TemplateOptions.plist 2024-05-13 16:06:18 UTC (rev 28899) +++ trunk/bibdesk/TemplateOptions.plist 2024-05-14 09:11:13 UTC (rev 28900) @@ -414,6 +414,12 @@ </dict> <dict> <key>displayName</key> + <string>ABC; ABC+</string> + <key>key</key> + <string>@prefixesJoinedWithPlusAfterThree</string> + </dict> + <dict> + <key>displayName</key> <string>First name only</string> <key>key</key> <string>@firstObject</string> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Bibdesk-commit mailing list Bibdesk-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-commit