Revision: 27613
http://sourceforge.net/p/bibdesk/svn/27613
Author: hofman
Date: 2022-06-12 08:44:33 +0000 (Sun, 12 Jun 2022)
Log Message:
-----------
Compare existing URLs case insensitive when merging
Modified Paths:
--------------
trunk/bibdesk/BDSKMergeController.m
trunk/bibdesk/BibItem.m
Modified: trunk/bibdesk/BDSKMergeController.m
===================================================================
--- trunk/bibdesk/BDSKMergeController.m 2022-06-12 08:36:17 UTC (rev 27612)
+++ trunk/bibdesk/BDSKMergeController.m 2022-06-12 08:44:33 UTC (rev 27613)
@@ -187,6 +187,15 @@
return [overwriteFields count] > 0;
}
+static inline BOOL filesContainURL(NSURL *url, NSArray *files) {
+ NSString *urlString = [url absoluteString];
+ for (BDSKLinkedFile *file in files) {
+ if ([url isFileURL] == [file isFile] && [urlString
isCaseInsensitiveEqual:[[file URL] absoluteString]])
+ return YES;
+ }
+ return NO;
+}
+
- (void)setupFieldsWithPublication:(BibItem *)mergedPublication {
overwriteFields = [[NSMutableArray alloc] init];
addedFields = [[NSMutableArray alloc] init];
@@ -212,7 +221,7 @@
if ([field hasPrefix:@"Bdsk-File-"]) {
if (files) {
NSURL *aURL = [[BDSKLinkedFile
linkedFileWithBase64String:newValue delegate:publication] URL];
- if (aURL && [[[publication localFiles] valueForKey:@"URL"]
containsObject:aURL] == NO) {
+ if (aURL && filesContainURL(aURL, [publication files]) == NO) {
[files insertObject:aURL atIndex:fileIdx++];
}
}
@@ -219,7 +228,7 @@
} else if ([field hasPrefix:@"Bdsk-Url-"]) {
if (files) {
NSURL *aURL = [NSURL URLWithString:newValue];
- if (aURL && [[[publication remoteURLs] valueForKey:@"URL"]
containsObject:aURL] == NO) {
+ if (aURL && filesContainURL(aURL, [publication files]) == NO) {
[files addObject:aURL];
}
}
@@ -269,7 +278,7 @@
if (files) {
for (BDSKLinkedFile *aFile in [mergedPublication files]) {
NSURL *aURL = [aFile URL];
- if (aURL && [[[publication files] valueForKey:@"URL"]
containsObject:aURL] == NO) {
+ if (aURL && filesContainURL(aURL, [publication files]) == NO) {
if ([aURL isFileURL])
[files insertObject:aURL atIndex:fileIdx++];
else
Modified: trunk/bibdesk/BibItem.m
===================================================================
--- trunk/bibdesk/BibItem.m 2022-06-12 08:36:17 UTC (rev 27612)
+++ trunk/bibdesk/BibItem.m 2022-06-12 08:44:33 UTC (rev 27613)
@@ -3058,10 +3058,10 @@
if (urlValue) {
// see if this file was converted previously to avoid duplication
NSArray *currentURLs = [self
valueForKeyPath:@"files.URL.absoluteString.lowercaseString"];
- NSString *urlString = [[urlValue absoluteString] lowercaseString];
+ NSString *urlString = [urlValue absoluteString];
BOOL converted = NO;
for (BDSKLinkedFile *file in self->files) {
- if ([urlValue isFileURL] == [file isFile] && [[[[file URL]
absoluteString] lowercaseString] isEqualToString:urlString]) {
+ if ([urlValue isFileURL] == [file isFile] && [[[file URL]
absoluteString] isCaseInsensitiveEqual:urlString]) {
converted = YES;
break;
}
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