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