Revision: 24016
          http://sourceforge.net/p/bibdesk/svn/24016
Author:   hofman
Date:     2019-07-13 21:15:52 +0000 (Sat, 13 Jul 2019)
Log Message:
-----------
ignore too many duplicate fields for RIS parser

Modified Paths:
--------------
    trunk/bibdesk/BDSKPubMedParser.m
    trunk/bibdesk/BDSKRISParser.m
    trunk/bibdesk/BDSKReferParser.m

Modified: trunk/bibdesk/BDSKPubMedParser.m
===================================================================
--- trunk/bibdesk/BDSKPubMedParser.m    2019-07-13 21:10:16 UTC (rev 24015)
+++ trunk/bibdesk/BDSKPubMedParser.m    2019-07-13 21:15:52 UTC (rev 24016)
@@ -201,7 +201,7 @@
             NSString *collapsedWhitespaceString = (NSString 
*)BDStringCreateByCollapsingAndTrimmingCharactersInSet(NULL, 
(CFStringRef)newString, (CFCharacterSetRef)[NSCharacterSet 
whitespaceCharacterSet]);
             [newString release];
             newString = collapsedWhitespaceString;
-        } else if(([key isSingleValuedField] && [key 
isEqualToString:BDSKAddressString] == NO) || [key isURLField]) {
+        } else if(([key isSingleValuedField] || [key isURLField]) && [key 
isEqualToString:BDSKAddressString] == NO) {
             // for single valued and URL fields, create a new field name
             NSInteger i = 1;
             NSString *newKey = [key stringByAppendingFormat:@"%ld", (long)i];

Modified: trunk/bibdesk/BDSKRISParser.m
===================================================================
--- trunk/bibdesk/BDSKRISParser.m       2019-07-13 21:10:16 UTC (rev 24015)
+++ trunk/bibdesk/BDSKRISParser.m       2019-07-13 21:15:52 UTC (rev 24016)
@@ -175,7 +175,7 @@
                 [newString release];
                 newString = collapsedWhitespaceString;
                        }
-        } else if(([key isSingleValuedField] || [key isURLField]) && [key 
isEqualToString:BDSKAnnoteString] == NO && [key 
isEqualToString:BDSKAbstractString] == NO) {
+        } else if(([key isSingleValuedField] || [key isURLField]) && [key 
isEqualToString:BDSKAddressString] == NO && [key 
isEqualToString:BDSKAnnoteString] == NO && [key 
isEqualToString:BDSKAbstractString] == NO) {
             // for single valued and URL fields, create a new field name
             NSInteger i = 1;
             NSString *newKey = [key stringByAppendingFormat:@"%ld", (long)i];
@@ -182,6 +182,13 @@
             while ([pubDict objectForKey:newKey] != nil) {
                 i++;
                 newKey = [key stringByAppendingFormat:@"%ld", (long)i];
+                // don't add too many fields as btparse can't handle that
+                // for instance there may be one address for every authors and 
there can be a lot
+                if (i > 20) {
+                    // just ignore them, should not be too important
+                    value = nil;
+                    break;
+                }
             }
             key = newKey;
             newString = [value copy];

Modified: trunk/bibdesk/BDSKReferParser.m
===================================================================
--- trunk/bibdesk/BDSKReferParser.m     2019-07-13 21:10:16 UTC (rev 24015)
+++ trunk/bibdesk/BDSKReferParser.m     2019-07-13 21:15:52 UTC (rev 24016)
@@ -104,7 +104,7 @@
             NSString *collapsedWhitespaceString = (NSString 
*)BDStringCreateByCollapsingAndTrimmingCharactersInSet(NULL, 
(CFStringRef)newString, (CFCharacterSetRef)[NSCharacterSet 
whitespaceCharacterSet]);
             [newString release];
             newString = collapsedWhitespaceString;
-        } else if(([key isSingleValuedField] && [key 
isEqualToString:BDSKAddressString] == NO) || [key isURLField]) {
+        } else if(([key isSingleValuedField] || [key isURLField]) && [key 
isEqualToString:BDSKAddressString] == NO) {
             // for single valued and URL fields, create a new field name
             NSInteger i = 1;
             NSString *newKey = [key stringByAppendingFormat:@"%ld", (long)i];

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