mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 09:04:13 +00:00
fix some cases where we were not returning YES or NO as BOOL result
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37282 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
09f2b97b99
commit
bb5c5fc7ba
2 changed files with 19 additions and 10 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-10-26 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSPredicate.m: ([_evaluateLeftValue:rightValue:object:])
|
||||
should return either YES or NO in all cases.
|
||||
|
||||
2013-10-25 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Tools/make_strings/StringsFile.m:
|
||||
|
|
|
@ -884,7 +884,7 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
|
|||
return ((leftIsNil == rightIsNil)
|
||||
&& ((_type == NSEqualToPredicateOperatorType)
|
||||
|| (_type == NSLessThanOrEqualToPredicateOperatorType)
|
||||
|| (_type == NSGreaterThanOrEqualToPredicateOperatorType)));
|
||||
|| (_type == NSGreaterThanOrEqualToPredicateOperatorType))) ? YES : NO;
|
||||
}
|
||||
|
||||
// Change predicate options into string options.
|
||||
|
@ -903,13 +903,17 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
|
|||
switch (_type)
|
||||
{
|
||||
case NSLessThanPredicateOperatorType:
|
||||
return ([leftResult compare: rightResult] == NSOrderedAscending);
|
||||
return ([leftResult compare: rightResult] == NSOrderedAscending)
|
||||
? YES : NO;
|
||||
case NSLessThanOrEqualToPredicateOperatorType:
|
||||
return ([leftResult compare: rightResult] != NSOrderedDescending);
|
||||
return ([leftResult compare: rightResult] != NSOrderedDescending)
|
||||
? YES : NO;
|
||||
case NSGreaterThanPredicateOperatorType:
|
||||
return ([leftResult compare: rightResult] == NSOrderedDescending);
|
||||
return ([leftResult compare: rightResult] == NSOrderedDescending)
|
||||
? YES : NO;
|
||||
case NSGreaterThanOrEqualToPredicateOperatorType:
|
||||
return ([leftResult compare: rightResult] != NSOrderedAscending);
|
||||
return ([leftResult compare: rightResult] != NSOrderedAscending)
|
||||
? YES : NO;
|
||||
case NSEqualToPredicateOperatorType:
|
||||
return [leftResult isEqual: rightResult];
|
||||
case NSNotEqualToPredicateOperatorType:
|
||||
|
@ -919,7 +923,7 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
|
|||
return GSICUStringMatchesRegex(leftResult, rightResult, compareOptions);
|
||||
#else
|
||||
return [leftResult compare: rightResult options: compareOptions]
|
||||
== NSOrderedSame;
|
||||
== NSOrderedSame ? YES : NO;
|
||||
#endif
|
||||
case NSLikePredicateOperatorType:
|
||||
#if GS_USE_ICU == 1
|
||||
|
@ -939,14 +943,14 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
|
|||
}
|
||||
#else
|
||||
return [leftResult compare: rightResult options: compareOptions]
|
||||
== NSOrderedSame;
|
||||
== NSOrderedSame ? YES : NO;
|
||||
#endif
|
||||
case NSBeginsWithPredicateOperatorType:
|
||||
{
|
||||
NSRange range = NSMakeRange(0, [rightResult length]);
|
||||
return ([leftResult compare: rightResult
|
||||
options: compareOptions
|
||||
range: range] == NSOrderedSame);
|
||||
range: range] == NSOrderedSame ? YES : NO);
|
||||
}
|
||||
case NSEndsWithPredicateOperatorType:
|
||||
{
|
||||
|
@ -956,7 +960,7 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
|
|||
[rightResult length]);
|
||||
return ([leftResult compare: rightResult
|
||||
options: compareOptions
|
||||
range: range] == NSOrderedSame);
|
||||
range: range] == NSOrderedSame ? YES : NO);
|
||||
}
|
||||
case NSInPredicateOperatorType:
|
||||
/* Handle special case where rightResult is a collection
|
||||
|
@ -985,7 +989,7 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
|
|||
}
|
||||
return ([rightResult rangeOfString: leftResult
|
||||
options: compareOptions].location
|
||||
!= NSNotFound);
|
||||
!= NSNotFound ? YES : NO);
|
||||
case NSCustomSelectorPredicateOperatorType:
|
||||
{
|
||||
BOOL (*function)(id,SEL,id) = (BOOL (*)(id,SEL,id))[leftResult methodForSelector: _selector];
|
||||
|
|
Loading…
Reference in a new issue