fix for range issue pointed out by Mathias Bauer <mathias_bauer@gmx.net>

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37685 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2014-02-13 15:45:06 +00:00
parent 017bda675b
commit feddbf6a1b

View file

@ -961,6 +961,7 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
case NSBeginsWithPredicateOperatorType: case NSBeginsWithPredicateOperatorType:
{ {
NSRange range = NSMakeRange(0, [rightResult length]); NSRange range = NSMakeRange(0, [rightResult length]);
return ([leftResult compare: rightResult return ([leftResult compare: rightResult
options: compareOptions options: compareOptions
range: range] == NSOrderedSame ? YES : NO); range: range] == NSOrderedSame ? YES : NO);
@ -968,9 +969,14 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption
case NSEndsWithPredicateOperatorType: case NSEndsWithPredicateOperatorType:
{ {
NSRange range; NSRange range;
NSUInteger ll = [leftResult length];
NSUInteger rl = [rightResult length];
range = NSMakeRange([leftResult length] - [rightResult length], if (ll < rl)
[rightResult length]); {
return NO;
}
range = NSMakeRange(ll - rl, rl);
return ([leftResult compare: rightResult return ([leftResult compare: rightResult
options: compareOptions options: compareOptions
range: range] == NSOrderedSame ? YES : NO); range: range] == NSOrderedSame ? YES : NO);