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

Reply via email to