Revision: 22652
          http://sourceforge.net/p/bibdesk/svn/22652
Author:   hofman
Date:     2018-09-22 22:10:14 +0000 (Sat, 22 Sep 2018)
Log Message:
-----------
don't add identical objects in scripting add command

Modified Paths:
--------------
    trunk/bibdesk/BDSKAddCommand.m

Modified: trunk/bibdesk/BDSKAddCommand.m
===================================================================
--- trunk/bibdesk/BDSKAddCommand.m      2018-09-22 14:46:11 UTC (rev 22651)
+++ trunk/bibdesk/BDSKAddCommand.m      2018-09-22 22:10:14 UTC (rev 22652)
@@ -129,17 +129,27 @@
                     [self setScriptErrorNumber:NSArgumentsWrongScriptError];
                     [self setScriptErrorString:NSLocalizedString(@"Invalid 
container to add to", @"Error description")];
                 } else {
+                    NSArray *objects = [insertionContainer 
valueForKey:insertionKey];
+                    NSMutableArray *insertedObjects = [NSMutableArray array];
                     // insert using scripting KVC
                     if (insertionIndex >= 0) {
-                        for (id obj in insertionObjects)
-                            [insertionContainer insertValue:obj 
atIndex:insertionIndex++ inPropertyWithKey:insertionKey];
+                        for (id obj in insertionObjects) {
+                            if ([objects indexOfObjectIdenticalTo:obj] == 
NSNotFound) {
+                                [insertionContainer insertValue:obj 
atIndex:insertionIndex++ inPropertyWithKey:insertionKey];
+                                [insertedObjects addObject:obj];
+                            }
+                        }
                     } else {
-                        for (id obj in insertionObjects)
-                            [insertionContainer insertValue:obj 
inPropertyWithKey:insertionKey];
+                        for (id obj in insertionObjects) {
+                            if ([objects indexOfObjectIdenticalTo:obj] == 
NSNotFound) {
+                                [insertionContainer insertValue:obj 
inPropertyWithKey:insertionKey];
+                                [insertedObjects addObject:obj];
+                            }
+                        }
                     }
                     
                     // get the return value as an NSAppleEventDescriptor
-                    return [(isArray ? insertionObjects : [insertionObjects 
firstObject]) aeDescriptorValue];
+                    return [(isArray ? insertedObjects : [insertedObjects 
firstObject]) aeDescriptorValue];
                 }
             }
         }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to