Update of /cvsroot/radmind/radmind-assistant/rte
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28007
Modified Files:
NSString(RXAdditions).m
Log Message:
!pattern matching for non-wildcard searches.
Index: NSString(RXAdditions).m
===================================================================
RCS file: /cvsroot/radmind/radmind-assistant/rte/NSString(RXAdditions).m,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** NSString(RXAdditions).m 7 Apr 2006 14:32:44 -0000 1.14
--- NSString(RXAdditions).m 26 Apr 2006 01:05:26 -0000 1.15
***************
*** 51,67 ****
}
! - ( BOOL )containsString: ( NSString * )substring useCaseInsensitiveComparison: ( BOOL )ci
{
unsigned mask;
if ( substring == nil ) return NO;
! if ( ci == YES ) mask = NSCaseInsensitiveSearch;
! else mask = NSLiteralSearch;
! if ( [ self rangeOfString: substring options: mask ].location != NSNotFound ) {
! return( YES );
}
! return( NO );
}
--- 51,84 ----
}
! - ( BOOL )containsString: ( NSString * )substring
! useCaseInsensitiveComparison: ( BOOL )ci
{
+ NSString *pattern = substring;
+ BOOL match = NO;
unsigned mask;
+ int rc, invcmp = 0;
if ( substring == nil ) return NO;
! if ( ci == YES ) {
! mask = NSCaseInsensitiveSearch;
! } else {
! mask = NSLiteralSearch;
! }
! if ( [ substring characterAtIndex: 0 ] == '!' ) {
! invcmp = 1;
! pattern = [ substring substringFromIndex: 1 ];
}
!
! if ((( rc = [ self rangeOfString: pattern options: mask ].location )
! != NSNotFound ) && !invcmp ) {
! match = YES;
! } else if ( rc == NSNotFound && invcmp ) {
! /* !pattern matching */
! match = YES;
! }
!
! return( match );
}
|