Revision: 22759
          http://sourceforge.net/p/bibdesk/svn/22759
Author:   hofman
Date:     2018-10-08 09:32:40 +0000 (Mon, 08 Oct 2018)
Log Message:
-----------
Some commends and more extensive errors

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

Modified: trunk/bibdesk/BDSKAutoFileCommand.m
===================================================================
--- trunk/bibdesk/BDSKAutoFileCommand.m 2018-10-08 09:11:04 UTC (rev 22758)
+++ trunk/bibdesk/BDSKAutoFileCommand.m 2018-10-08 09:32:40 UTC (rev 22759)
@@ -82,20 +82,12 @@
             }
             field = BDSKLocalFileString;
             end = start = [indexNumber integerValue] - 1;
-        } else if (forField) {
-            field = forField;
-            if ([forField isEqualToString:BDSKLocalFileString]) {
-                start = 0;
-                end = location ? 0 : -1;
-            }
+        } else if ([forField isEqualToString:BDSKLocalFileString] || (forField 
== nil && [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey] == NO)) {
+            field = BDSKLocalFileString;
+            start = 0;
+            end = location ? 0 : -1;
         } else {
-            if ([[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey]) {
-                field = BDSKLocalUrlString;
-            } else {
-                field = BDSKLocalFileString;
-                start = 0;
-                end = location ? 0 : -1;
-            }
+            field = forField ?: BDSKLocalUrlString;
         }
     } else if ([receiverClass isEqualToString:@"field"]) {
         if ([receiverSpec isKindOfClass:[NSNameSpecifier class]]) {
@@ -106,6 +98,7 @@
                 [self setScriptErrorString:@"Cannot pass both an index and a 
field."];
                 return nil;
             }
+            // should we allow both a field and a field name?
             if (forField && [forField isEqualToString:field] == NO) {
                 [self setScriptErrorNumber:NSArgumentsWrongScriptError];
                 [self setScriptErrorString:@"Inconsistent field names."];
@@ -148,16 +141,20 @@
         } else {
             [self setScriptErrorNumber:NSArgumentsWrongScriptError];
             [self setScriptErrorString:@"Unsupported linked file specifier."];
+            [self setScriptErrorOffendingObjectDescriptor:[receiverSpec 
descriptor]];
             return nil;
         }
+        // should we allow both linked file(s) and a field name?
         if (forField && [forField isEqualToString:BDSKLocalFileString] == NO) {
             [self setScriptErrorNumber:NSArgumentsWrongScriptError];
             [self setScriptErrorString:@"Cannot pass a field for a linked 
file."];
             return nil;
         }
+        // should we allow both linked file(s) and an index?
     } else {
         [self setScriptErrorNumber:NSArgumentsWrongScriptError];
         [self setScriptErrorString:@"Receiver should be a publication, field, 
or linked file(s)."];
+        [self setScriptErrorOffendingObjectDescriptor:[receiverSpec 
descriptor]];
         return nil;
     }
     
@@ -176,6 +173,7 @@
     
     if ([doc isDocument] == NO) {
         [self setScriptErrorNumber:NSReceiversCantHandleCommandScriptError];
+        [self setScriptErrorString:@"Cannot auto file for external items."];
         return nil;
     }
     
@@ -214,7 +212,7 @@
             location = [[NSURL URLWithString:location] path];
         else if ([location hasPrefix:@"~"])
             location = [location stringByExpandingTildeInPath];
-        else if ([location isAbsolutePath] == NO)
+        else if ([location isAbsolutePath] == NO) // or should we use the 
papers folder?
             location = [[([pub basePath] ?: NSHomeDirectory()) 
stringByAppendingPathComponent:location] stringByStandardizingPath];
         NSArray *paperInfos = [NSArray arrayWithObject:[NSDictionary 
dictionaryWithObjectsAndKeys:pub, BDSKFilerPublicationKey, location, 
BDSKFilerNewPathKey, [files firstObject], BDSKFilerFileKey, nil]];
         if ([[BDSKFiler sharedFiler] movePapers:paperInfos forField:field 
fromDocument:doc options:BDSKAutoFileOptionInitial]) {

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