Revision: 24057
          http://sourceforge.net/p/bibdesk/svn/24057
Author:   hofman
Date:     2019-07-18 22:41:14 +0000 (Thu, 18 Jul 2019)
Log Message:
-----------
normalize bibtex type and all fields in services search term

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

Modified: trunk/bibdesk/BDSKServiceProvider.m
===================================================================
--- trunk/bibdesk/BDSKServiceProvider.m 2019-07-18 22:28:24 UTC (rev 24056)
+++ trunk/bibdesk/BDSKServiceProvider.m 2019-07-18 22:41:14 UTC (rev 24057)
@@ -86,7 +86,8 @@
     // alternatively we can just type the title, like we used to.
     [scanner setCharactersToBeSkipped:nil];
     NSSet *citeKeyStrings = [NSSet 
setForCaseInsensitiveStringsWithObjects:@"cite key", @"citekey", @"cite-key", 
@"key", nil];
-    
+    NSSet *pubTypeStrings = [NSSet 
setForCaseInsensitiveStringsWithObjects:@"bibtex type", @"pub type", nil];
+
     while(![scanner isAtEnd]){
         // set these to nil explicitly, since we check for that later
         queryKey = nil;
@@ -100,12 +101,17 @@
         queryString = [queryString 
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
         queryKey = [queryKey stringByTrimmingCharactersInSet:[NSCharacterSet 
whitespaceCharacterSet]];
         
-        // allow some additional leeway with citekey
-        if([citeKeyStrings containsObject:queryKey])
-            queryKey = BDSKCiteKeyString;
-        
-        if(queryKey && queryString) // make sure we have both a key and a value
-            [searchConstraints setObject:queryString forKey:[queryKey 
fieldName]]; // BibItem field names are capitalized
+        if(queryKey && queryString){ // make sure we have both a key and a 
value
+            // allow some additional leeway with citekey, pubtype, and All 
Fields
+            if([citeKeyStrings containsObject:queryKey])
+                [searchConstraints setObject:queryString 
forKey:BDSKCiteKeyString];
+            else if([pubTypeStrings containsObject:queryKey])
+                [searchConstraints setObject:queryString 
forKey:BDSKPubTypeString];
+            else if([BDSKAllFieldsString isCaseInsensitiveEqual:queryKey])
+                [searchConstraints setObject:queryString 
forKey:BDSKAllFieldsString];
+            else
+                [searchConstraints setObject:queryString forKey:[queryKey 
fieldName]]; // BibItem field names are capitalized
+        }
     }
     
     return searchConstraints;

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