Revision: 22446
          http://sourceforge.net/p/bibdesk/svn/22446
Author:   hofman
Date:     2018-07-21 09:43:52 +0000 (Sat, 21 Jul 2018)
Log Message:
-----------
use char sets instead of comparing individual characters

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

Modified: trunk/bibdesk/BDSKFormatParser.m
===================================================================
--- trunk/bibdesk/BDSKFormatParser.m    2018-07-21 09:25:48 UTC (rev 22445)
+++ trunk/bibdesk/BDSKFormatParser.m    2018-07-21 09:43:52 UTC (rev 22446)
@@ -60,6 +60,8 @@
 static NSCharacterSet *validEscapeSpecifierChars = nil;
 static NSCharacterSet *validArgSpecifierChars = nil;
 static NSCharacterSet *validOptArgSpecifierChars = nil;
+static NSCharacterSet *validOptArg3SpecifierChars = nil;
+static NSCharacterSet *validOptArg2SpecifierChars = nil;
 static NSCharacterSet *validAuthorSpecifierChars = nil;
 static NSDictionary *specAttr = nil;
 static NSDictionary *paramAttr = nil;
@@ -86,6 +88,8 @@
     validEscapeSpecifierChars = [[NSCharacterSet 
characterSetWithCharactersInString:@"0123456789%[]"] retain];
     validArgSpecifierChars = [[NSCharacterSet 
characterSetWithCharactersInString:@"fwcsi"] retain];
     validOptArgSpecifierChars = [[NSCharacterSet 
characterSetWithCharactersInString:@"aApPTEkfwsuUn"] retain];
+    validOptArg3SpecifierChars = [[NSCharacterSet 
characterSetWithCharactersInString:@"APws"] retain];
+    validOptArg2SpecifierChars = [[NSCharacterSet 
characterSetWithCharactersInString:@"apk"] retain];
     validAuthorSpecifierChars = [[NSCharacterSet 
characterSetWithCharactersInString:@"aApP"] retain];
     
     NSFont *font = [NSFont systemFontOfSize:0];
@@ -1104,7 +1108,7 @@
                // check optional arguments
                if ([validOptArgSpecifierChars characterIsMember:specifier]) {
                        if (NO == [scanner isAtEnd]) {
-                               NSInteger i, numOpts = ((specifier == 'A' || 
specifier == 'P' || specifier == 'w' || specifier == 's')? 3 : ((specifier == 
'a' || specifier == 'p' || specifier == 'k')? 2 : 1));
+                               NSInteger i, numOpts = 
([validOptArg3SpecifierChars characterIsMember:specifier] ? 3 : 
[validOptArg2SpecifierChars characterIsMember:specifier] ? 2 : 1);
                                for (i = 0; i < numOpts && [scanner 
scanString:@"[" intoString: NULL]; i++) {
                                        if (NO == [scanner scanUpToString:@"]" 
intoString:&string]) 
                                                string = @"";

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to