From feddbf6a1b96ac2fd1ff9e9fa50595d7f4ec673b Mon Sep 17 00:00:00 2001 From: rfm Date: Thu, 13 Feb 2014 15:45:06 +0000 Subject: [PATCH] fix for range issue pointed out by Mathias Bauer git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37685 72102866-910b-0410-8b05-ffd578937521 --- Source/NSPredicate.m | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/NSPredicate.m b/Source/NSPredicate.m index d4163acae..2c51caa66 100644 --- a/Source/NSPredicate.m +++ b/Source/NSPredicate.m @@ -961,6 +961,7 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption case NSBeginsWithPredicateOperatorType: { NSRange range = NSMakeRange(0, [rightResult length]); + return ([leftResult compare: rightResult options: compareOptions range: range] == NSOrderedSame ? YES : NO); @@ -968,9 +969,14 @@ GSICUStringMatchesRegex(NSString *string, NSString *regex, NSStringCompareOption case NSEndsWithPredicateOperatorType: { NSRange range; + NSUInteger ll = [leftResult length]; + NSUInteger rl = [rightResult length]; - range = NSMakeRange([leftResult length] - [rightResult length], - [rightResult length]); + if (ll < rl) + { + return NO; + } + range = NSMakeRange(ll - rl, rl); return ([leftResult compare: rightResult options: compareOptions range: range] == NSOrderedSame ? YES : NO);