Revision: 27241
          http://sourceforge.net/p/bibdesk/svn/27241
Author:   hofman
Date:     2022-01-19 10:51:57 +0000 (Wed, 19 Jan 2022)
Log Message:
-----------
resolve 'item i of' specifiers only when they arethe child specifier

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

Modified: trunk/bibdesk/BDSKPublicationCommand.m
===================================================================
--- trunk/bibdesk/BDSKPublicationCommand.m      2022-01-18 23:56:14 UTC (rev 
27240)
+++ trunk/bibdesk/BDSKPublicationCommand.m      2022-01-19 10:51:57 UTC (rev 
27241)
@@ -49,24 +49,21 @@
 }
 
 - (void)setReceiversSpecifier:(NSScriptObjectSpecifier *)receiversSpecifier {
-    if ([[receiversSpecifier key] isEqualToString:@""]) {
-        // this is an 'item i of <element>' specifier
-        // transform to an index specifier for the element
-        if ([receiversSpecifier isKindOfClass:[NSIndexSpecifier class]]) {
-            NSScriptObjectSpecifier *spec = [receiversSpecifier 
containerSpecifier];
-            receiversSpecifier = [[[NSIndexSpecifier alloc] 
initWithContainerClassDescription:[spec containerClassDescription] 
containerSpecifier:[spec containerSpecifier] key:[spec key] 
index:[(NSIndexSpecifier *)receiversSpecifier index]] autorelease];
-        } else {
-            [self setScriptErrorNumber:NSArgumentsWrongScriptError];
-            [self setScriptErrorString:@"Do not understand receiver 
specifier."];
-        }
-    }
     BDSKDESTROY(keySpecifier);
     if ([[[receiversSpecifier keyClassDescription] className] 
isEqualToString:@"publication"]) {
         [super setReceiversSpecifier:receiversSpecifier];
     } else {
-        [super setReceiversSpecifier:[receiversSpecifier containerSpecifier]];
-        [receiversSpecifier setContainerSpecifier:nil];
-        keySpecifier = [receiversSpecifier retain];
+        NSScriptObjectSpecifier *containerSpecifier = [receiversSpecifier 
containerSpecifier];
+        if ([[receiversSpecifier key] isEqualToString:@""] && 
[receiversSpecifier isKindOfClass:[NSIndexSpecifier class]]) {
+            // this is an 'item i of <element>' specifier
+            // transform to an index specifier for the element
+            keySpecifier = [[NSIndexSpecifier alloc] 
initWithContainerClassDescription:[containerSpecifier 
containerClassDescription] containerSpecifier:nil key:[containerSpecifier key] 
index:[(NSIndexSpecifier *)receiversSpecifier index]];
+            containerSpecifier = [containerSpecifier containerSpecifier];
+        } else {
+            [receiversSpecifier setContainerSpecifier:nil];
+            keySpecifier = [receiversSpecifier retain];
+        }
+        [super setReceiversSpecifier:containerSpecifier];
     }
 }
 

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