Revision: 25181
http://sourceforge.net/p/bibdesk/svn/25181
Author: hofman
Date: 2020-12-11 15:49:48 +0000 (Fri, 11 Dec 2020)
Log Message:
-----------
No separate method to validate a unique string, it is now called in only one
place
Modified Paths:
--------------
trunk/bibdesk/BDSKFormatParser.m
Modified: trunk/bibdesk/BDSKFormatParser.m
===================================================================
--- trunk/bibdesk/BDSKFormatParser.m 2020-12-11 15:32:57 UTC (rev 25180)
+++ trunk/bibdesk/BDSKFormatParser.m 2020-12-11 15:49:48 UTC (rev 25181)
@@ -77,8 +77,6 @@
prefix:(NSString *)prefix
suffix:(NSString *)suffix;
-+ (BOOL)stringIsValid:(NSString *)proposedStr forField:(NSString *)fieldName
ofItem:(id <BDSKParseableItem>)pub inFolder:(NSURL *)papersFolderURL;
-
+ (NSString *)stringBySanitizingString:(NSString *)string forField:(NSString
*)fieldName;
+ (NSString *)stringByStrictlySanitizingString:(NSString *)string
forField:(NSString *)fieldName;
@@ -842,6 +840,7 @@
NSString *str = uniqueString(chars, count, ++i);
if (str) return str;
}
+ return nil;
} else {
NSMutableString *str = [NSMutableString stringWithString:baseStr];
if (count) {
@@ -850,10 +849,16 @@
if (suffix) [str appendString:suffix];
}
[str appendString:endStr];
- if ([self stringIsValid:str forField:fieldName ofItem:pub
inFolder:papersFolderURL])
+ // validate te result
+ if ([NSString isEmptyString:str])
+ return nil;
+ else if ([fieldName isEqualToString:BDSKCiteKeyString])
+ return [pub isValidCiteKey:str] ? str : nil;
+ else if ([fieldName isGeneralLocalFileField])
+ return [[papersFolderURL URLByAppendingPathComponent:str]
checkResourceIsReachableAndReturnError:NULL] ? nil : str;
+ else
return str;
}
- return nil;
};
NSUInteger n = number;
@@ -946,28 +951,6 @@
return YES;
}
-// this might be changed when more fields are available
-// do we want to add character checks as in CiteKeyFormatter?
-+ (BOOL)stringIsValid:(NSString *)proposedStr forField:(NSString *)fieldName
ofItem:(id <BDSKParseableItem>)pub inFolder:(NSURL *)papersFolderURL
-{
- if ([fieldName isEqualToString:BDSKCiteKeyString]) {
- return [pub isValidCiteKey:proposedStr];
- }
- else if ([fieldName isGeneralLocalFileField]) {
- if ([NSString isEmptyString:proposedStr])
- return NO;
- return ([[papersFolderURL URLByAppendingPathComponent:proposedStr]
checkResourceIsReachableAndReturnError:NULL] == NO);
- }
- else if ([fieldName isRemoteURLField]) {
- if ([NSString isEmptyString:proposedStr])
- return NO;
- return YES;
- }
- else {
- return YES;
- }
-}
-
+ (NSString *)stringBySanitizingString:(NSString *)string forField:(NSString
*)fieldName
{
NSCharacterSet *invalidCharSet = [[BDSKTypeManager sharedManager]
invalidCharactersForField:fieldName];
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