From: Andrew M. <fit...@us...> - 2006-04-26 01:05:34
|
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 ); } |